falsche Transparenz bei ExtractIconEx unter WinXP
Hallo,
in meinem Programm lese ich mit ExtractIconsEx die kleinen (16x16) Icons aus Programmdateien aus. Nun ist es so, dass unter Windows XP offensichtlich das XP-Icon zurückgegeen wird (z.B. wenn man das Icon der iexplore.exe ausliest). Dadurch kann das Icon nicht richtig transparent dargestellt werden, sondern hat dort, wo es eigentlich halbdurchsichtig sein sollte die Farbe schwarz. Mein Frage deshalb: gibt es eine Funktion mit der man ein Icon mit einer bestimmten Farbzahl (z.b. 8Bit) auslesen kann? |
Re: falsche Transparenz bei ExtractIconEx unter WinXP
Das schwarz liegt am Alpha-Blending (WinXP) und ist wohl ein kleiner Bug in der Komponente...
Das Problem kann man aber wie folgt lösen:
Delphi-Quellcode:
Diesen "Tip" habe ich von FriFra bekommen.
var
SHFileInfo: TSHFileInfo; SysIcons: THandle; SystemIcons: TImageList; begin SysIcons := SHGetFileInfo('', 0, SHFileInfo, SizeOf(SHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON); SystemIcon := TImageList.Create; SystemIcons.Handle := SysIcons; //SystemImagelist zuweisen... SystemIcons.ShareImages := True; {Wenn ImageList1 einmal der Inhalt der SystemImageList zugewiesen wurde unterstützt diese fortan 32Bit Icons mit Alphablending} ImageList1.Assign(SystemIcons); ImageList1.Clear; SystemIcons.Free; |
Danke!
:spin: Vielen Dank für die schnelle Antwort!
Bin gerade neu hier, scheint aber ein wirklich gutes Forum zu sein. |
Re: falsche Transparenz bei ExtractIconEx unter WinXP
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 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