Ukrywanie kursora z timerem.

0

Problem wydaje sie prosty, ale nie chce mi to działać poprawnie. Jedyne co ma program robić to ukrycie kursora po 3 sekundach jeżeli nie jest on poruszany. Czyli coś identycznego jak w odtwarzaczach filmów na full screenie.

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 Timer1.Enabled:=false;
 ShowCursor(true);
 Timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 ShowCursor(false);
 Timer1.Enabled:=false;
end;

Niestety coś jest nie tak, bo zdarzenie mouseMove wydaje się działać bez przerwy i kursor nie chce znikać nawet jak nim nie poruszam.

0

ja bym to tak zrobil:
zrob zmienna globalna typu TTime.
w onmousemove daj:

zmienna_globalna:=now;
ShowCursor(True);

a w timerze:

if now-zmiennaglobalna>strtotime('00:00:03') then showcursor(false);

zamiast zmienej globalnej mozesz poprosic system aby podal Ci ile sekund temu ktos poruszyl mysza albo dotykal klawiatury. nie pamietam jak sie to robilo ale jakos banalnie, poszukaj na forum.

0

ja bym jeszcze po ShowCursor(False) dał wyłączenie timera i włączenie w OnMouseMove - po co ma sprawdzać czy wyłączyć kursor jak i tak jest wyłączony

0

nie wiem czemu, ale procedura chowania kursora nie zawsze u mnie działa (Delphi 7 Enterprise). Według mnie agorytmy pokazane przez autora tego tematu i użytkownika climak są prawidłowe a instrukcja chowania kursora jest błędna, ponieważ wszystko działałoby jeżeli zamiast instrukcji chowania kursora wstawić inną, jak np. ShowMessage('To działa');

0
Autre napisał(a)

nie wiem czemu, ale procedura chowania kursora nie zawsze u mnie działa (Delphi 7 Enterprise). Według mnie agorytmy pokazane przez autora tego tematu i użytkownika climak są prawidłowe a instrukcja chowania kursora jest błędna, ponieważ wszystko działałoby jeżeli zamiast instrukcji chowania kursora wstawić inną, jak np. ShowMessage('To działa');

jesli faktycznie tak jest to chyba pozostaje ladowalnie wlasnego, pustego kursora.

0

Zgadza się, zadziałało dopiero gdy ładuje pusty kursor a ShowCursor() wywaliłem. Dziękuje za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1