Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Cursor in ressourcen datei definieren (https://www.delphipraxis.net/145083-cursor-ressourcen-datei-definieren.html)

MasterChief_88 23. Dez 2009 08:13


Cursor in ressourcen datei definieren
 
Hi!!

also ich möchte für meine Form die ganze Zeit einen selbsterstellten Cursor als Mauszeiger haben.
Überall im Internet findet man, wie man Cursor aus einer ressourcen-datei einbindet, aber nirgendswo steht,
wie man den Cursor in der ressourcen-datei definiert.

Also zur zeit sieht meine ressourcendatei so aus:
Delphi-Quellcode:
SourceCode CURSOR "Unit1.pas"
Curl BITMAP "Curl.bmp"
und einbinden in meine unit mach ich:
Delphi-Quellcode:
  Screen.Cursors[crCurl] := LoadCursor(HInstance,'Curl.bmp');
  screen.Cursor := crcurl;
ja, es passiert aber nichts mit der maus - immer noch das gleiche standartding ^^

kann mir bitte jemand helfen??

mfg

r29d43 23. Dez 2009 10:12

Re: Cursor in ressourcen datei definieren
 
Hi,

bei mir klappte das mit folgendem in der .rc-Datei:

ResourceName CURSOR "DateinameDesCursors"

und bezüglich des "einbindens":

Delphi-Quellcode:
const crCurl = 1; // z.B., weil alle normalen cr-Codes ja 0 o. negativ sind

Screen.Cursors[crCurl] := LoadCursor(HInstance,'ResourceName');
screen.Cursor := crCurl;

Zum Beispiel:

Bzgl der .rc-Datei:

MeinCursor CURSOR "MeinCursor.cur"

und bzgl. der LoadCursor-Zeile dann:

Delphi-Quellcode:
Screen.Cursors[crCurl] := LoadCursor(HInstance,'MeinCursor');

rXdY

MasterChief_88 23. Dez 2009 11:39

Re: Cursor in ressourcen datei definieren
 
also die Unit heißt "Unit.pas"
die rc-Datei heißt "cursor.rc"
ja und die Bitmap "curl.bmp"

und das projekt liegt im gleichen ordner wie die rc-datei, die unit und die Bitmap.
okay... also mein code sieht jetzt folgender maßen aus:

rc-Datei:
Delphi-Quellcode:
SourceCode RCDATA "Unit1.pas"
cursor Cursor "Curl.bmp"
und dann in der unit:
Delphi-Quellcode:
const
  crCurl = 1;
.
.
.
  Screen.Cursors[crCurl] := LoadCursor(HInstance,'Curl.bmp');
  screen.Cursor := crCurl;
und es geht immer noch nicht.. und ick weiß einfach nich warum :(

r29d43 23. Dez 2009 12:03

Re: Cursor in ressourcen datei definieren
 
Es wäre vielleicht besser, wenn Du anstatt des Bitmaps lieber eine echte .Cur-Datei benutzen würdest. Ich weiß im Moment gar nicht, ob es mit einem einfachen Bitmap überhaupt geht. Ansonsten geht es event. noch mit einer .ico-Datei (mit z.B. GIMP erstellbar), die Du anschließend einfach in eine .cur-Datei umbenennst.

Als Inhalt der .rc-Datei würde ich nur die zweite Zeile nehmen. Nimm also die erste Zeile da mal ganz raus (irgendwie sieht die dort ziemlich ungesund aus).

Und für die 'LoadCursor'-CodeZeile müsste dann folgendes kommen:

Delphi-Quellcode:
Screen.Cursors[crCurl] := LoadCursor(HInstance,'cursor');
Außerdem: Ich gehe natürlich auch davon aus, dass Du diese .rc-Datei auch schon ordentlich mit in dein Projekt aufgenommen hast. Ansonsten mach das zuerst noch über das Hauptmenue: 'Projekt' -> 'dem Projekt hinzufügen'

rXdY

turboPASCAL 23. Dez 2009 13:19

Re: Cursor in ressourcen datei definieren
 
Zitat:

Ich weiß im Moment gar nicht, ob es mit einem einfachen Bitmap überhaupt geht.
Ja, aber nur über einen Umweg.

Man sollte besser "echte" Cursordateien erstellen/verwenden, schon alleine des Hotspots
also den Cursorcoordinaten wegen.

Mit Bei Google suchenIcoFX (Freeware) kann man so etwas realisieren .

MasterChief_88 23. Dez 2009 13:28

Re: Cursor in ressourcen datei definieren
 
hi!
also ich hab das jetzt anders geamcht:

ich hab einen neuen leeren cursor erstellt mithilfe des delphieditor und das bitmap einfach mit dem event "mouseMove" an die x-y-koordinaten gehangen. funzt einwandfrei ;)!
ich dank euch für die ideen!! hat mir echt weiter geholfen!

mfg ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz