Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#1

weissen Hintergrund eines Icons entfernen

  Alt 27. Apr 2008, 17:56
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! <<
  Mit Zitat antworten Zitat