![]() |
Cursor aus BITMAP-Ressourcenname laden
Morgen.
Ich habe eine BITMAP Ressource, die über den Ressourcennamen angesprochen wird. Wie kriege ich die jetzt als Mauscursor? LoadCursor geht schonmal nicht. |
Re: Cursor aus BITMAP-Ressourcenname laden
du kommst nicht drumherum die Bitmap in einen richtigen Cursor zu wandeln. Eine Bitmap ist nur ein Bild, ein Cursor hingegen besitzt noch eigenschaften für die Mausposition etc.
|
Re: Cursor aus BITMAP-Ressourcenname laden
Ich wäre dir durchaus dankbar, wenn du mir noch sagen würdest, wie ich das mache. ;)
EDIT: Zur Laufzeit meine ich. |
Re: Cursor aus BITMAP-Ressourcenname laden
Moin Manuel,
warum speicherst Du das nicht gleich als Cursor? |
Re: Cursor aus BITMAP-Ressourcenname laden
Weil die Quelle als Bitmap vorliegt. Ich verwende das Bitmap als Glyph für einen SpeedButton. Und wenn man draufklickt, soll das Glyph als Cursor angezeigt werden.
|
Re: Cursor aus BITMAP-Ressourcenname laden
|
Re: Cursor aus BITMAP-Ressourcenname laden
Habs mit CreateIconIndirect probiert. Aber das erzeugt komischerweise kein gültiges Icon. Ich kanns nicht per icon.handle:=Screen.Cursors[$0101]; laden und per icon.SaveToFile(); abspeichern. Gibt eine Exception "Ungültiges Icon" Aber dieser Cursor ist eindeutig gesetzt und hat auch ein Handle.
|
Re: Cursor aus BITMAP-Ressourcenname laden
Zitat:
Delphi-Quellcode:
Aller dings ist die Resource kein Bitmap sondern ein Cursor....
procedure TfrmInfo.FormCreate(Sender: TObject);
var Cur: HCursor; begin Cur := LoadImage(hInstance, MAKEINTRESOURCE(1), IMAGE_CURSOR, 0, 0, 0); Screen.Cursors[1] := Cur; DeleteObject(Cur); Cursor := 1; Button1.Cursor := Cursor; StaticText1.Cursor := Cursor; //... end; oder soll es dyn. erstellt werden ? |
Re: Cursor aus BITMAP-Ressourcenname laden
Es soll dynamisch erstellt werden. Aus einem Bitmap.
|
Re: Cursor aus BITMAP-Ressourcenname laden
Dann so:
Delphi-Quellcode:
// ...
implementation const crMyCursor = 1; var IconInfo : TIconInfo; procedure TForm1.Button1Click(Sender: TObject) ; var bmpMask : TBitmap; bmpColor : TBitmap; begin bmpMask := TBitmap.Create; bmpColor := TBitmap.Create; //ein Bitmap auf die einfache Art erstellen ;-) bmpColor.LoadFromFile('..\TestMapCur.bmp'); bmpMask.LoadFromFile('..\TestMaskCur.bmp'); IconInfo.fIcon := False; // kein Icon sondern Cursor IconInfo.xHotspot := 5; IconInfo.yHotspot := 5; IconInfo.hbmMask := bmpMask.Handle; IconInfo.hbmColor := bmpColor.Handle; Screen.Cursors[crMyCursor] := CreateIconIndirect(iconInfo) ; Screen.Cursor := crMyCursor; Button1.Cursor := 1; bmpMask.Free; bmpColor.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 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