Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Aus Hicon mache TIcon...
webmaker - Do 10.07.03 10:44
Titel: Aus Hicon mache TIcon...
Hi ich habe ein Handle zu einem Icon (HIcon) mit der folgenden Funktion:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| function GetIcon(Handle : Cardinal) : HIcon; var H: HIcon; begin H := CopyIcon(GetClassLong(handle, GCL_HICON )); result := h; end; |
Jetzt möchte ich das Icon auch zu einer ImageList hinzufügen. Doch damit habe ich so meine Probleme...
Wollte das eigentlich so machen:
Quelltext
1: 2:
| Icon.Handle := GetIcon(StrToInt(fenster[i, 0])); ImageList1.AddIcon(Icon); |
Wobei Icon natürlich vom Typ TIcon ist.
Irgendwie scheint es da aber Probleme zu geben (Es kommt ne Zugriffsverletzung)
Wie mache ich das jetzt richtig?
Tana´Ri - Do 10.07.03 11:59
so funktioniert es:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TFrm_IconChange.Button1Click(Sender: TObject); var Icon : TIcon; FileInf : TShFileInfo; begin Icon := TIcon.Create; try ShGetFileInfo(PChar(ParamStr(0)),0,FileInf,SizeOf(TShFileInfo),SHGFI_ICON); Icon.Handle := CopyIcon(FileInf.hIcon); if icon.Handle <> 0 then // zur Visualisierung begin Imagelist1.AddIcon(Icon); imagelist1.GetIcon(0,imgico.Picture.Icon); end; finally Icon.free; end; end; |
webmaker - Do 10.07.03 12:17
ach jetzt weiß ich was ich falsch gemacht habe...JEtzt wo ich deinen Code sehe, fällt es mir wie schuppen von den Augen...
Ich habe vergessen das TIcon zu createn....da kommt dann natürlich eine Fehlermeldung...
Danke trotzdem.
PS: Was macht dein Code eigentlich ncoh anders?
Tana´Ri - Do 10.07.03 12:34
Mit GetClassLong must du das Application.Handle verwenden !
GetClassLong bezieht das Handle auf die entsprechenden Klasse.
-ShGetFileInfo bezieht sich direkt auf die Exe (ParamStr(0) = application.exename)
-kein Umweg über eigene GetIcon
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!