Hallo!
Wie kann ich eine Cursor-Änderung durch
Image1.Cursor:= crCross;
sofort wirksam werden lassen? Bisher wird der Cursor erst geändert, wenn sich der Mouse-Zeiger bewegt.
Hintergund: Auf meiner Form befindet sich unter anderem ein Image. Auf diesem Image soll gezeichnet werden können, wenn der Bentzer die Strg-Taste gedrückt hält und die Mouse-Taste drückt. Um anzuzeigen, dass das Image durch die Strg-Taste bereit ist bemahlt zu werden, soll sich der Cursor ändern. Dazu verwende ich folgenden Code:
Delphi-Quellcode:
...
Form1.KeyPreview:= True;
...
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Shift=[ssCtrl] then
begin
Image1.Cursor:= crCross;
end;
end;
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Image1.Cursor=crCross then
begin
Image1.Cursor:= crDefault;
end;
end;
Prinzipiell funktioniert das ganze auch, allerdings erst wenn man die Mouse bewegt. Wie kann ich den Cursor zwingen sich sofort upzudaten? Über
Image1.Update;
oder auch eine simulierte Mousebewegung durch Aufruf von
Image1MouseMove
geht das leider nicht.
Gruß
e-g-o-n