Einzelnen Beitrag anzeigen

Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: System Cursor austauschen

  Alt 12. Aug 2012, 16:56
Nabend,

ich nochmal. Ich habe die letzten Tage ein wenig experimentiert und scree.cursors ist mir nicht "global" genug. Nach einigem Googlen stieß ich auf SetSystemCursor().
Das funktioniert wunderbar. Nur habe ich mit dem zurücksetzen Probleme. Etwas Code:

Zuerst definiere ich die eigentliche BackupVariable im Unit Kopf:

Delphi-Quellcode:
...
var
  Form1: TForm1;
  CurSysCursor: HCURSOR;
...
Dann rufe ich einen Button auf, der diese Backup Variable EIGENTLICH füllen soll und danach den Mauszeiger ändern:

Delphi-Quellcode:
procedure TForm1.Button11Click(Sender: TObject);
var h: THandle;
begin
CurSysCursor := GetCursor;

h:=LoadImage(0, PChar(ExtractFilePath(Application.Exename) + '..\img\cursor\1.cur'), IMAGE_CURSOR, 0, 0, LR_DEFAULTSIZE or LR_LOADFROMFILE);
Screen.Cursors[1]:=h;

SetSystemCursor(Screen.Cursors[1],OCR_NORMAL);
end;
Das funktioniert. Möchte ich aber mit einem anderen Button den Cursor zurücksetzen, passiert... nichts.
Code:

SetSystemCursor(CurSysCursor, OCR_NORMAL); Ich muss zugeben, ich beziehe mich bei dem Code "nur" auf gefundene Beispiele, weil ich leider selbst zu wenig Ahnung in dem Bereich habe.
Warum funktioniert das Zurücksetzen nicht? Gibt es andere "Notfall Reset" Funktionen die ich nutzen könnte? Hoffe Ihr könnt helfen...

Gruß,
Andreas
  Mit Zitat antworten Zitat