![]() |
Cursor Resource Einbinden klapt nicht warum ?
Hallo,
ich habe versucht mit Resource Workshop V4.5, 5 verschiedene Cursors erstellt und in ein MyCursor.rc abgespeichert. Dann mit brcc32.exe MyCursor.rc kompiliert und ohne Probleme mir MyCursor.res ausgegeben. {$R MyCursor.res} in mein Prog eingebunden und kompiliert keine Probleme. dann in FormCreate wie folgt aufgerufen: const cuHand= 1; cuFaust=2; Screen.Cursors[cuHand] := LoadCursor(HInstance, 'Cursor_1'); Screen.Cursors[cuFaust]:= LoadCursor(HInstance, 'Cursor_2'); PaintBox1.Cursor:= cuFaust; Frage ?: er ändert den PaintBox1.Cursor überhaupt nicht, obwohl er keine Fehler ausgibt warum?? mfg |
Re: Cursor Resource Einbinden klapt nicht warum ?
Zitat:
So müsste es theoretisch immer funktionieren:
Delphi-Quellcode:
var
crMeine : Integer; procedure TForm1.FormCreate(Sender: TObject); begin crMeine := Screen.CursorCount + 1; Screen.Cursors[crMeine] := LoadCursor(HInstance, '3DWMOVE'); PaintBox1.Cursor := crMeine; end; |
Re: Cursor Resource Einbinden klapt nicht warum ?
Eigentlich ist an dem gezeigten Quelltext, hier mal mit delphi-Tags ;)
Delphi-Quellcode:
nichts falsch.
const
cuHand = 1; cuFaust = 2; procedure TForm1.FormCreate(Sender: TObject); begin Screen.Cursors[cuHand] := LoadCursor(HInstance, 'Cursor_1'); Screen.Cursors[cuFaust]:= LoadCursor(HInstance, 'Cursor_2'); PaintBox1.Cursor := cuFaust; end; Alle Systemcursors haben einen Wert kleiner oder gleich Null. Dem zufolge sollte das Beispiel funktionieren. Was ich mir vorstellen kann ist, das die Cursors nicht geladen wurden. Einfach mal wie folgt überprüfen:
Delphi-Quellcode:
Ohne diese Abfrage über eine Hilfsvariable wird im Falle das der Cursor nicht
const
cuHand = 1; cuFaust = 2; procedure TForm1.FormCreate(Sender: TObject); function LoadCursorFromResource(Instance: hInst; ResName: PChar): HCURSOR; begin Result := LoadCursor(Instance, ResName); if Result = 0 then ShowMessage(format('Cursor "%s" konnte nicht geladen werden.', [ResName])); end; begin Screen.Cursors[cuHand] := LoadCursorFromResource(HInstance, 'Cursor_1'); Screen.Cursors[cuFaust] := LoadCursorFromResource(HInstance, 'Cursor_2'); PaintBox1.Cursor := cuFaust; end; geladen bzw. in der Resource gefunden wurde keine Fehlermeldung erzeugt. Der Rückgabewert von LoadCursor ist im Fehlerfall Null (0) das heisst der Defauldcursor (IDC_ARROW) würde geladen / angezeigt. |
Re: Cursor Resource Einbinden klapt nicht warum ?
Hallo,
wie richtig vermutet er liest den Cursor nicht richtig. Ich habe versucht einzeln ein *.cur nach *rc zu speichern und dann brcc32.exe *.rc *.res ausgeführt. Er kann aber einzeln lesen. Aber wie kann ich alle meine Cursors zusammen in eine *.res datei packen ?? mfg |
Re: Cursor Resource Einbinden klapt nicht warum ?
|
Re: Cursor Resource Einbinden klapt nicht warum ?
Hallo,
nun habe ich geschafft alle meine *.cur Dateien in einem *.rc uns danach in *.res zu kompilieren und in mein Application erfolgreich einbinden und jeden Mauszeiger einzeln je nach Wunsch ansprechen und darstellen. nächstes Problem: Wenn ich in OnMouseDown(), OnMouseMove() und OnMouseUp() den Screen.Cursor:= cur... setze ist alles kein Problem, wenn ich nur den Mauszeiger für PaintBox1.Cursor:= cur... ändere, ändert sich der Mauszeiger unter gleichen o.g. Bedingungen nicht wie gewünscht alle richtig ansprechen und darstellen. warum ?? mfg |
Re: Cursor Resource Einbinden klapt nicht warum ?
Könntest du mal dein Programm/Source als Zip anhängen ?
|
Re: Cursor Resource Einbinden klapt nicht warum ?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
wie gewünscht der Sourcedaten nur bei Zuweisung der Cursorzeigern beim PaintBox1.Cursor klappe nicht alle Zeigerzuweisungen. mfg |
Re: Cursor Resource Einbinden klapt nicht warum ?
Das Problemchen ist das der Faustcursor immer wieder auf den Handcursor gesetzt wird.
Genau an dieser Stelle:
Delphi-Quellcode:
sbHandLupeClick wird in PaintBox1MouseUp aufgerufen.
procedure TfrmPrintPreview.sbHandLupeClick(Sender: TObject);
begin if (sbHandLupe.Down) then PaintBox1.{Screen}Cursor:= crLupe else PaintBox1.{Screen}Cursor:= crHand; end; |
Re: Cursor Resource Einbinden klapt nicht warum ?
Hallo,
solange ich den linken MouseTaste gedrückt halte und Mouse bewege sollte er eigentlich keine Fauständerung geben (was sich in Screen.Cursor ganz OK verhält) in der OnmouseMove. Wenn ich los lasse dann gibt es eine Mouseänderung zum crHand. mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 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