Einzelnen Beitrag anzeigen

amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
274 Beiträge
 
Delphi 12 Athens
 
#14

AW: Bitmap transparent aus TImageList holen

  Alt 28. Feb 2019, 15:11
Versuch nicht, die Bitmap aus der Imagelist zu holen
Muss ich aber, weil ich die die Grafiken eigentlich in einem Listview verwenden will. Das mit dem Button war erst einmal ein Test, die Grafiken generell transparent zu bekommen.

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 TBitmap.CreateFromStream(IconStream); wobei IconStream : TMemoryStream; definiert ist. Und dann übergebe ich die gelesenen Grafiken der Imagelist, wobei TIconData(IconList[i]).Icon die Grafik beinhaltet:

Delphi-Quellcode:
for i := 0 to IconList.Count - 1 do
begin
   ii := ImageListLeft32.AddMasked(TIconData(IconList[i]).Icon, clFuchsia);
   ImageListLeft32.Draw(Canvas, 0, 0, ii);
end;
Vielleicht ist mein Ansatz auch grundlegend falsch und ich müsste es anders angehen.
Für einen Tipp wäre ich dankbar.
  Mit Zitat antworten Zitat