Hmmm... Mache ich doch auch?
Ich habe einmal ein TPNGImage in dem das Button Bild lieft und einmal ein TPNGImage in dem das Icon liegt.
Zur Design Time ist jedilich das Bild ohne Icon vorgeladen.
Beim starten werden die beiden TPNGImages gefüllt mit den Bildern.
Bisher natürlich nur auf Klickt um mein Programm nicht direkt zu versauen.
Dann wird auf den Canvas vom JvImage.Picture eben das Icon gezeichnet.
JvImage1.Picture.Bitmap.Canvas.Draw(X,Y, IconImage);
so jetzt soll eben das Icon nicht mehr angezeigt werden und ich nutze die Funktion.
Delphi-Quellcode:
var
DestFrame: TRect;
begin
DestFrame := ButtonImage.Canvas.ClipRect;
JvImage1.Picture.Bitmap.Canvas.StretchDraw(DestFrame, ButtonImage);
Damit bekomme ich eben das letzte Bildchen aus dem angehängten Bild.
Dabei sollte doch, wenn ichs richtig verstanden habe der gesamte Bereich übermalt werden.
Leider sind eben die Bilder dabei Transparent.
Wie kann ich denn das Picture der Komponente neu erstellen zur Laufzeit? Auf nil setzen und dann normal wieder laden?
Wie würde das denn von der Performance aussehen?