![]() |
AW: Bitmap transparent aus TImageList holen
Zitat:
Der einzige unterschied ist halt das dann der Bildstrip (Ist ja nur ein einzelnes Bitmap in der ImageList) transparent ist. btw. Die beste Methode ist natürlich die ImageList direkt mit dem korrekten Format zu befüllen in dem fall wie du schon sagst *.png Bin mir nur nicht sicher ob das von der IDE (Resourcen Editor) unterstützt wird. gruss |
AW: Bitmap transparent aus TImageList holen
Zitat:
Sherlock |
AW: Bitmap transparent aus TImageList holen
Zitat:
Diese alternative sollte aber bei D7 und Delphi Versionen funktionieren wo *.png Nicht mit dem Ressourcen Editor addiert werden können. gruss |
AW: Bitmap transparent aus TImageList holen
Zitat:
Mein eigentliches Anliegen ist folgendes: Der Anwender soll als "Customizing" im Programm seine eigenen Symbole auswählen können, die in einem Listview als grafische Unterstützung einer Ordnerstruktur angezeigt werden sollen. Jedem Eintrag soll eine spezielle Grafik zugewiesen werden können. Die ausgewählten Grafiken werden in einer Imagelist abgelegt und am Ende in einem Stream als Datei gespeichert, mitsamt anderer Daten, die verwendet werden. Beim nächsten Start soll dieser Stream wieder geladen werden, und die einzelnen Grafiken in der Imagelist eingefügt werden. Anhand des ImageIndex wird die Grafik im Listview angezeigt. Das funktioniert soweit auch ganz gut, bis auf die Transparenz! Die geht verloren. Zum Laden verwende ich
Delphi-Quellcode:
wobei
TBitmap.CreateFromStream(IconStream);
Delphi-Quellcode:
definiert ist. Und dann übergebe ich die gelesenen Grafiken der Imagelist, wobei
IconStream : TMemoryStream;
Delphi-Quellcode:
die Grafik beinhaltet:
TIconData(IconList[i]).Icon
Delphi-Quellcode:
Vielleicht ist mein Ansatz auch grundlegend falsch und ich müsste es anders angehen.
for i := 0 to IconList.Count - 1 do
begin ii := ImageListLeft32.AddMasked(TIconData(IconList[i]).Icon, clFuchsia); ImageListLeft32.Draw(Canvas, 0, 0, ii); end; Für einen Tipp wäre ich dankbar. |
AW: Bitmap transparent aus TImageList holen
Zitat:
Du verstehst einfach nicht das in RIO die Bitmaps nicht transparent abgelegt werden das musst du selbst tun. Wie das geht habe ich gezeigt. Verstehe nicht was da so schwer ist das umzusetzen. Ok bin raus ;) gruss |
AW: Bitmap transparent aus TImageList holen
Sorry @EWeiss. Deinen Sourcecode habe ich nicht wirklich wahrgenommen.
Den werde ich mir natürlich einmal anschauen, denn genau das möchte ich, dass die Grafiken in der Imagelist zur Laufzeit transparent gesetzt werden. |
AW: Bitmap transparent aus TImageList holen
Hatte gerade etwas zeit.
In der ImageList befinden sich Bitmaps in 24Bit Format. Ohne Transparenz\Alpha. gruss |
AW: Bitmap transparent aus TImageList holen
Hallo und danke für den Quellcode.
Leider hilft mir das nicht 100%ig weiter. Wie oben beschrieben, benötige ich die Grafiken in einem Listview, der die Images über den ImageIndex steuert. In Deinem Beispiel, wird der Inhalt der ImageList in eine BMP und PNG Datei gespeichert, wobei letztere dann in ein TImage geladen wird. Erstens, wäre die Lösung über einen MemoryStream eleganter, aber eine solche Funktion scheint es wohl nicht in GDI zu geben? Und wie bringe ich dann die transparente Grafik in den Listview? |
AW: Bitmap transparent aus TImageList holen
Zitat:
Du kannst auf das speichern verzichten und anschließend direkt die Images aus der ImageList laden. Die sind zu diesen Zeitpunkt Transparent. Ein bisschen musst du auch selber machen ;) gruss |
AW: Bitmap transparent aus TImageList holen
Du hast Recht, es funktioniert :thumb:
Also, erst die ImageList transparent setzen lassen und dann ganz normal die Listview füllen. Jetzt habe ich es verstanden. Sorry, wenn ich dich aufgrund meiner Unwissenheit genervt haben sollte :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:27 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