Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - TIcon / Extracticon... 16x16?
FriFra - Di 08.04.03 11:00
Titel: TIcon / Extracticon... 16x16?
Ich will wie folgt ein Icon laden:
Quelltext
1:
| icon.Handle := ExtractIcon(Handle, 'c:\windows\system32\shell32.dll', 10); |
Das Problem an der Sache ist allerdings, dass ich so immer nur das 32x32 (Truecolor) Icon bekomme, ich will aber das 16x16 (256 Farben) haben. Wie komme ich an dieses Icon?
wulfskin - Di 08.04.03 12:25
Schau dir mal ExtractIconEx an, ich glaub, dass ist genau das richtige für dich!
FriFra - Di 08.04.03 15:52
ExtractIconEx liefert mir jetzt endlich die 16x16 Icons. allerdings weiss ich noch nicht, wie ich an die 256 farbigen Icons komme...
Ich benötige die Icons für eine TreeView, dabei stört natürlich der Alphakanal (Transparenz unter XP), welcher im TreeView schwarz erscheint...
Wie bekomme ich das 256 farb Icon?
FriFra - Di 15.04.03 08:40
Ich habs... Mein Problem mit den schwarzen alpha Kanälen kann man lösen, indem man der ImageList zur Laufzeit den kompletten Inhalt einer andeen Imagelist zuweist, welche derartige Icons bereits enthällt. Es ist also offensichtlich ein bug der Komponente...
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.FormCreate(Sender: TObject); var SHFileInfo: TSHFileInfo; SysIcons: THandle; begin // Handle der "ShellImageList" ermitteln SysIcons := SHGetFileInfo(PChar('C:\'), 0, SHFileInfo, SizeOf(SHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON or SHGFI_ICON);
// Handle temporärer ImageList zuweisen ImageListTemp.Handle := SysIcons;
// Assign ist wichtig, da bei der Zuweisung eines Handle // an z.B. mehrere ImageList immer alle geändert würden MyImageList.Assign(ImageListTemp); end; |
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!