![]() |
System Cursor austauschen
Huhu,
ich weiß nicht ob das Thema hier richtig ist. Wenn nicht, bitte verschieben. Meine Frage ist, ob ich die Vordefinierten Cursor temporär austauschen kann. Wie ich einen eigen Cursor als Zusatz einbinde und aktiviere weiß ich. Aber gibt es eine Möglichkeit (nur für ein Programm) zu bestimmen, welcher Cursor genau beim Einbinden von crHourGlass z.B. genommen werden soll? Also nicht der vom System vordefinierte... Gruß, Andreas |
AW: System Cursor austauschen
Delphi-Quellcode:
Screen.Cursors[crHourglass] := LoadCursorFromFile({dateiname=}'cursors\sexygirl.ani')
|
AW: System Cursor austauschen
Ah ok, danke. Ich habs immer mit Applicatio.Cursors versucht. Deins klappt, vielen Dank :).
|
AW: System Cursor austauschen
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:
Dann rufe ich einen Button auf, der diese Backup Variable EIGENTLICH füllen soll und danach den Mauszeiger ändern:
...
var Form1: TForm1; CurSysCursor: HCURSOR; ...
Delphi-Quellcode:
Das funktioniert. Möchte ich aber mit einem anderen Button den Cursor zurücksetzen, passiert... nichts.
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; Code:
Delphi-Quellcode:
Ich muss zugeben, ich beziehe mich bei dem Code "nur" auf gefundene Beispiele, weil ich leider selbst zu wenig Ahnung in dem Bereich habe.
SetSystemCursor(CurSysCursor, OCR_NORMAL);
Warum funktioniert das Zurücksetzen nicht? Gibt es andere "Notfall Reset" Funktionen die ich nutzen könnte? Hoffe Ihr könnt helfen... Gruß, Andreas |
AW: System Cursor austauschen
![]() Zitat:
|
AW: System Cursor austauschen
Das heisst ich kann meinen eigenen Cursor nicht einfach per ID setzen? Ich fand das ganz praktisch, weil ich ihn nicht per res laden wollte sollte ein wenig (datei-)austauschbarer.
Nur habe ich da nichts gefunden, wie das ohne ID geht (kann natürlich an fehlendem Wissen meinerseits liegen). |
AW: System Cursor austauschen
Ich habe so etwas noch nie versucht, aber wenn ich das richtig verstehe, benötigst Du zunächst eine Kopie des Originalcursors. Klappt es so?
Delphi-Quellcode:
Und am Ende dann OldCursor statt CurSysCursor zuweisen. Diese Angaben sind allerdings ohne Gewähr. Übrigens sollte man wohl noch die entsprechenden Rückgabewerte auswerten.
CurSysCursor := GetCursor;
OldCursor := CopyCursor(CurSysCursor); |
AW: System Cursor austauschen
Wieso eine Kopie? CurSysCursor ist doch schon quasi eine Kopie, sobald es mit dem aktuellen Cursor gefüllt wird?
|
AW: System Cursor austauschen
Hast Du meinen Vorschlag einmal ausprobiert?
|
AW: System Cursor austauschen
Ich bin grad unterwegs vom Büro nach Hause. Gib mir 20 Minuten, dann teste ich.
Als welchen Typ soll ich denn die OldCursor Variable definieren? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz