Zitat von
zappel:
Nun möchte ich einbauen, dass die Maus unsichtbar wird, wenn man sie 3 Sekunden lang nicht bewegt. Dazu habe ich einen Timer eingebaut, der TForm.Cursor:=crNone setzt. Bei FormMouseMove folgt TForm.Cursor:=crDefault. Das klappt auch alles bis dahin super. (Nach dem auslösen der Timers wird er disabled und wieder bei FormMouseMove enabled, aerb das nur nebenbei.)
Warum setzt du den Cursor nicht mit Screen.Cursor?
Wenn du ein Image auf deiner Form hast, dann wird das MouseMove Ereignis der Form doch gar nicht ausgelöst. Besser wäre wenn du dafür das Ereignis OnMessage von TApplication auswerten würdest.
Hier mal ein simples Beispiel:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 =
class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private-Deklarationen }
procedure OnAppMessage(
var Msg: TMsg;
var Handled: Boolean);
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{--------------------------------------------------------------------------------------------------}
procedure TForm1.OnAppMessage(
var Msg: TMsg;
var Handled: Boolean);
begin
Handled := False;
if Msg.
message <> WM_MOUSEMOVE
then
Exit;
Screen.Cursor := crDefault;
with Timer1
do
begin
Enabled := False;
Enabled := True;
end;
end;
{--------------------------------------------------------------------------------------------------}
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := OnAppMessage;
with Timer1
do
begin
Interval := 3000;
Enabled := True;
end;
end;
{--------------------------------------------------------------------------------------------------}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Screen.Cursor := crNone;
end;
{--------------------------------------------------------------------------------------------------}
end.
Muss da noch dazu sagen, das ich ein ganz großer Gegner von TTimer bin!!!