@Thom: und das Ganze funktioniert auch noch mit TImageList?
Ja. Hier der Beweis:
Das rechte obere Smiley ist ein TImage mit dem Original-PNG-Bild. Im FormShow-Event wird dieses Bild in eine normale Image-Liste kopiert (siehe erstes Beispiel). Diese Image-Liste wird vom Button zur Darstellung des Icons genutzt (ohne jeglichen eigenen Quelltext). Das Quadrat unteren ist ein TShape-Objekt, das in seiner rechten oberen Ecke von einer kleinen PaintBox überlagert ist und in die mit
Delphi-Quellcode:
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
ImageList1.Draw(PaintBox1.Canvas,0,0,0);
end;
gezeichnet wird. Mehr ist das nicht: Keine Magie, keine Tricks...
Eine Vergrößerung zeigt, das der Alpha-Kanal wirklich vorhanden ist:
GDI+ ist auf allen Systemen enthalten.
Nein. Zum Beispiel auf Windows 98 und Windows 2000 noch nicht.