Hallo,
hier hab ich einen Code bekommen zum Auslesen des Papierkorb-Icons.
Soweit so gut.
Da ich das Icon aber für die Glyph-Property eines BitBtns brauche, konvertier ich es in ein Bitmap um.
Der ganze Code schaut so aus:
Delphi-Quellcode:
procedure Papierkorb_Icon_laden(Button: TBitBtn);
var
piidlist : PItemIDList;
FileInfo : SHFILEINFO;
Bitmap : TBitmap;
Icon : TIcon;
begin
//Bitmap erzeugen
Bitmap := TBitmap.Create;
//Icon erzeugen
Icon := TIcon.Create;
try
//Wir holen uns den Pfad zum Papierkorb
SHGetSpecialFolderLocation(Button.Handle, CSIDL_BITBUCKET, piidlist);
//Holen uns Infos zum Papierkorb, hier das Icon
SHGetFileInfo(PChar(piidlist), 0, FileInfo, sizeof(FileInfo), SHGFI_ICON Or SHGFI_PIDL);
//
Icon.Handle := FileInfo.hIcon;
with Bitmap do
begin
Height := Icon.Height;
Width := Icon.Width;
TransparentColor := clWhite;
Transparent := true;
Canvas.Draw(0, 0, Icon);
end;
//Weisen der Form dieses Icon zu
Button.Glyph.Assign(Bitmap);
finally
//Bitmap löschen und freigeben
FreeAndNil(Bitmap);
//Icon löschen und freigeben
FreeAndNil(Icon);
end;
end;
Es funktioniert eigentlich ganz gut. Nur das Icon hat einen weissen Hintergrund.
Leider bekomm ich den nicht weg. Ich hätte gerne das reine Icon.
Dieser Teil:
Delphi-Quellcode:
with Bitmap do
begin
TransparentColor := clWhite;
Transparent := true;
end;
brachte leider auch keinen Erfolg.
Wie könnt ich den Hintergrund weg/transparent bekommen?
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<