![]() |
bmp Datein TRANSPARENT in TImageList laden
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen,
ich möchte eine eigene Klasse für alle verwendeten TImgaLists in meinem Programm verwenden. Daher habe ich die benötigten TImageLists im Code erstellt und muss jetzt die Bilder ebenfalls per Code einlesen. Das mache ich wie folgt:
Delphi-Quellcode:
Im OnCreate-Ereignis der Form weise ich den Buttons dann erst die TImageList zu und gebe dann den Index an
procedure TBilder.Load_Ribbon_Activ;
var image : TBitmap; PNG : Tpicture; Pfad: string; LSearchRec: TSearchRec; begin Pfad:=ExtractFilePath(ParamStr(0))+'\Symbole\48x48_activ\'; FIL_Ribbon_Activ.Height:=48; FIL_Ribbon_Activ.Width:=48; FIL_Ribbon_Activ.DrawingStyle:=dsTransparent; FIL_Ribbon_Activ.BlendColor:=clNone; png := TPicture.Create; image := TBitmap.create; if FindFirst(Pfad + '*.*', faNormal, LSearchRec) = 0 then begin repeat if LSearchRec.Attr and faDirectory = 0 then begin png.LoadFromFile(Pfad+LSearchRec.Name); image.Assign(png); FIL_Ribbon_Activ.AddMasked(image,clNone); end; until FindNext(LSearchRec) <> 0; FindClose(LSearchRec); end; png.Free; image.Free; end;
Delphi-Quellcode:
Da ich die Bild-Dateien mit einer Zahl vorweg benenne (00_zurueck.bmp; 01_vor.bmp) kenne ich auch die Reihenfolge in der TImageList.
begin
Glow_Start_Drucken.Images:=Bilder.IL_Ribbon_Activ; Glow_Start_Drucken.ImageIndex:=0; end; Alles klappt. Das einzige, was ich nicht hinbekomme, dass die Bilder auf den Buttons TRANSPARENT angezeigt werden. Ich habe immer die Hintergrundfarbe (siehe Anhang). Lieder habe ich mit der Suche keine für mich umsetzbare Antwort gefunden, und frage daher in die Runde. Vielen Dank Patrick |
AW: bmp Datein TRANSPARENT in TImageList laden
Es sollte funktionieren, wenn du bei AddMasked statt clNone die entsprechende Transparenzfarbe angibst, also z.B. clFuchsia.
Was relativ dynamisch funktionieren sollte ist das hier:
Delphi-Quellcode:
Da wird einfach der Pixel ganz oben links als Referenz für die Transparenzfarbe genommen.
FIL_Ribbon_Activ.AddMasked(image,image.Canvas.Pixels[0,0]);
|
AW: bmp Datein TRANSPARENT in TImageList laden
Spitze!!!
So klappt es. Ich hatte es zwar versucht, indem ich die Farbe angegeben hatte ($00FF00FE), aber das hatte nicht funktioniert. Gerade mal getestet: Hätte ich die Farbe mit clFuchsia angegeben statt mit $00FF00FE, dann hätte es sofort geklappt... So klappt es aber prima. Vielen Dank! Patrick |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz