Главная страница
    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.012 c
2-1157812850
Juri
2006-09-09 18:40
2006.10.01
Как программно узнать день недели любой даты?


15-1158120543
vajo
2006-09-13 08:09
2006.10.01
Проблема с почтой


3-1154007138
DelphiLexx
2006-07-27 17:32
2006.10.01
TFibDataSet обмирает OnSetText


15-1157862068
так себе
2006-09-10 08:21
2006.10.01
С Днем танкиста! А есть ли среди нас танкисты?


2-1158216030
абабаба
2006-09-14 10:40
2006.10.01
скопировать строку в массив





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский