Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#7

AW: Kreis im transparenten TImage zeichnen

  Alt 17. Dez 2022, 15:16
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);
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (17. Dez 2022 um 15:21 Uhr)
  Mit Zitat antworten Zitat