Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Вниз

Скрыть курсор   Найти похожие ветки 

 
Максиммм   (2006-03-07 06:09) [0]

Как при проигрываниии клипа или фильма скрыть курсор мыши если она не двигается, а если есть движение снова показать (как в привычных плеерах) ..... Заранее спасибо ....


 
grouzd[E]v ©   (2006-03-07 14:52) [1]

ShowCursor и MouseMove

---
... we are walking on a thin line and you better avoid the risk ...


 
Noby   (2006-03-09 15:21) [2]

Сделай так...


Type
 TCursorVisibleEvent = procedure (Sender: TObject; Visible : Boolean) of object;
 TVideoForm = class(TForm)
....
private
 private
   FIdleCursor : Integer; // через сколько убирать курсор
   procedure MyIdleHandler(Sender: TObject; var Done: Boolean);
end;

implementation
....
procedure TVideoForm.FormCreate(Sender: TObject);
begin
 FIdleCursor := 5000;
 Application.OnIdle := MyIdleHandler;
end;

procedure TVideoForm.MyIdleHandler(Sender: TObject; var Done: Boolean);
 var
   pt : TPoint;
 begin
   Done := True;
  if (FIdleCursor = 0) or (csDesigning in ComponentState) or (not IsFullScreen) then exit;
   if (GetTickCount - LCursorMov >= Cardinal(FIdleCursor)) then
     begin
       if Cursor <> crNone then
       begin
         RememberCursor := Self.Cursor;
         Cursor := crNone;
         GetCursorPos(pt);
         SetCursorPos(pt.x, pt.y);
         if Assigned(FOnCursorVisible) then
           FOnCursorVisible(nil, False);
       end;
     end
     else
     begin
       if (not IsHidden)then
       begin
         IsHidden := True;
         GetCursorPos(pt);
         SetCursorPos(pt.x, pt.y);
         if Assigned(FOnCursorVisible) then
           FOnCursorVisible(nil, False);
       end;
     end;
   end;


Удобно и работает как, к примеру, Bsplayer ;-).


 
Noby   (2006-03-09 15:39) [3]

Да вот еще кое что забыл... Надо повесить на форму обработчик OnMouse Move :(


Type
...
   procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);
private
   isFullScreen         : Boolean; // просто для проверки (если в маленком окне играет то курсор не прячем)
   FOnCursorVisible   : TCursorVisibleEvent;
   RememberCursor   : TCursor;
   FIdleCursor          : Integer;
   LMousePos          : TPoint;
   LCursorMov         : DWord;
   IsHidden             : Bool;
end;

...
implementation

procedure TVideoForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
var
MPos : TPoint;
 begin
     MPos := Point(X, Y);

   if (LMousePos.X <> MPos.X) or (LMousePos.Y <> MPos.Y) then
   begin
     LMousePos.X := MPos.X;
     LMousePos.Y := MPos.Y;
     LCursorMov := GetTickCount;
     begin
         if self.Cursor = crnone then
         begin
           self.Cursor := RememberCursor;
           if Assigned(FOnCursorVisible) then
             FOnCursorVisible(self, True);
         end
       else
       begin
         if IsHidden then
         begin
           IsHidden := False;
          if Assigned(FOnCursorVisible) then
             FOnCursorVisible(Self, True);
         end;
       end;
     end;
 end;
end;


Ну вот вроде и все...



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.014 c
4-1148639852
Shaman_
2006-05-26 14:37
2006.10.01
Перехват записи в буфер обмена


1-1155793236
DelphiLexx
2006-08-17 09:40
2006.10.01
Быстро определить последние размещенный контрол


1-1156176876
zip0
2006-08-21 20:14
2006.10.01
Как узнать handle окна explorer a?


2-1157976752
pavel_guzhanov
2006-09-11 16:12
2006.10.01
Заполнение двумерного массива


1-1155723489
Aleksandr.
2006-08-16 14:18
2006.10.01
Как отключать нажатие кнопок после выбора системной кнопки Help?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский