Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - eigener Cursor im .res-File kann nicht geladen werden


wwwdirk - Di 08.02.05 16:44
Titel: eigener Cursor im .res-File kann nicht geladen werden
Hi,

trotz vieler Hinweise hier im Forum, hab ich es nicht geschafft, meinen eigenen Cursor zu benutzen :( .
Folgenden Code habe ich im OnFormCreate-Ereignis implementiert:

Delphi-Quelltext
1:
2:
3:
4:
  // crDragCopy = 4711 --> als Konstante deklariert
  // DRAGCOPY          --> Name meines Cursors in der Project.res
  Screen.Cursors[crDragCopy] := LoadCursor(HInstance, PChar ('DRAGCOPY'));
  Memo1.Cursor := crDragCopy;

Der Cursor im TMemo-Feld ändert sein Verhalten bzw. Aussehen allerdings nicht. Die Zuweisung eines Standard-Cursors funktioniert an dieser Stelle.

Danke für die Hilfe!

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.


Sprint - Di 08.02.05 18:22

MyResource.rc:

Quelltext
1:
1  CURSOR    MyCursor.cur                    

Kompilieren mit brcc32.exe


Delphi-Quelltext
1:
{$R MyResource.res}                    


Delphi-Quelltext
1:
2:
const
  crMyCursor = 1;


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.FormCreate(Sender: TObject);
begin

  Screen.Cursors[crMyCursor] := LoadCursor(HInstance, MakeIntResource(crMyCursor));
  Memo1.Cursor := crMyCursor;

end;


Zitat:
Der Cursor im TMemo-Feld ändert sein Verhalten bzw. Aussehen allerdings nicht.

Du meinst über TMemo. Den Caret im TMemo ändert man anders.


wwwdirk - Mi 09.02.05 09:28

Ok,
ich hab's hingekriegt! Bei meinem ersten Versuch habe ich mit dem in Delphi6 integrierten Bildeditor meiner 'Project1.res' einen Cursor hinzugefügt. Den konnte man allerdings gar nicht auslesen (LoadCursor) :( !
Auf die von dir beschriebene Art und Weise gings dann :D :

1. Meinen Cursor in einer CUR-Datei

2. Diesen in der RC-Datei einbinden
DRAGCOPY CURSOR      DragCopy.cur

3. Nach dem kompilieren erhält man dann eine entsprechende RES-Datei

4. Diese mit {$R *.res} bzw. {$R MyCursor.res} einbinden

5. Cursor laden
Screen.Cursors[crDragCopy] := LoadCursor(HInstance, PChar ('DRAGCOPY'));

6. Und jetzt fröhlich zuweisen.

Vielen Dank und viele Grüße

Dirk