Hier habe ich keine geladen,
Delphi-Quellcode:
image2.Canvas.Pen.Color := clRed;
image2.Canvas.Pen.Width := 3;
image2.Canvas.Brush.Style := bsClear;
image2.Canvas.Ellipse(100, 100, 300, 300);
Ahhhh, jetzt seh ich es.
Du hast auf/über das TImage gemalt, nicht
in das Image, also in die "angezeigte" Graphic ... sowas macht man nicht.
Dort gibt es keine Transparenz. (transparent ist das, bzw. den Hintergrund sieht man nur dort, wo du niemals etwas übermalt hattest)
So hättest du auch gleich eine TPaintBox nehmen können
und sobald durch irgendwass das "Image" oder die Hintergrundkomponenten neu gezeichnet werden (z.B. minimiern/maximieren des Fensters oder einfach mal kurz das Fenster aus dem sichtbaren Berech verschieben und früher (vor dem DWM) auch wenn irgendwas, wie ein anderes Fenster, vor/über deinem Fenster lag) muß der Kreis im OnPaint auch immer wieder neu von dir gemalt werden.
Du wolltest eigentlich
Image2.Picture.Graphic.Canvas
bzw.
Image2.Picture.Bitmap.Canvas
(
nicht Image2.Canvas
)
Beim Zugriff auf Image2.Picture.Bitmap wird in Graphic ein TBitmap erstellt, wenn es noch Keines gibt, so groß wie das TImage aktuell ist.
also
Image2.Picture.Bitmap.Canvas.Ellipse(100, 100, 300, 300);