Einzelnen Beitrag anzeigen

e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
156 Beiträge
 
Delphi 6 Enterprise
 
#1

Curosr-Änderung sofort wirksam

  Alt 9. Sep 2012, 12:12
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
  Mit Zitat antworten Zitat