![]() |
AW: TExpander unter Delphi 10.4.2 Fehler
Hallo Stefan
ich habe rasch (geht ohne eine Zeile Code zu schreiben) TExpander auf TForm geklickt. In TExpander habe ich ein TImage reingesetzt. Im Objektinspektor (oder über Struktur) unter TImage finde ich die Eigenschaft Multiresbitmap. Ich klick drauf, lade ein Bild und lass das Programm laufen. Expander wird angezeigt, ich expandiere, sehe das Bild. Funktioniert. Dann sollte es doch via Code auch funktionieren? |
AW: TExpander unter Delphi 10.4.2 Fehler
Welchen TCanvas-Nachfahren verwendest du denn? Default unter Windows ist ja TCanvasD2D.
|
AW: TExpander unter Delphi 10.4.2 Fehler
Natürlich funktioniert Dein Code hier nicht:
Delphi-Quellcode:
geenauowenig wie Dein anderes Beispiel:
b := TBitmap.Create;
if b.Canvas.BeginScene then begin i := 4; b.canvas.EndScene; end;
Delphi-Quellcode:
Dein Bitmap hat immer die Größe 0,0.
procedure TForm2.Button2Click(Sender: TObject);
var MyRect: TRectF; begin // sets the circumscribed rectangle of the ellipse MyRect := TRectF.Create(50, 40, 200, 270); // draws the ellipse on the canvas Image1.Bitmap.Canvas.BeginScene; Image1.Bitmap.Canvas.DrawEllipse(MyRect, 40); Image1.Bitmap.Canvas.EndScene; end; Auf welchen Canvas willst Du dann auf welcher Postion malen? Logischerweise funktioniert dann auch kein Canvas.beginscene.... Mit anderen Worten: Das funktioniert:
Delphi-Quellcode:
b := TBitmap.Create (300,300);
if b.Canvas.BeginScene then begin i := 4; b.canvas.EndScene; end; |
AW: TExpander unter Delphi 10.4.2 Fehler
Ach ja und ergänzend zu meiner vorherigen Antwort:
WANN willst Du auf den Canvas "des Expanders" zeichnen? Anders als in der VCL hat in der FMX nicht jedes Control einen eigenen Canvas, sondern es existiert nur ein großer Canvas der Form, der von den einzelnen Controls verwendet wird. D.H. Du kannst nicht einfach irgendwann auf den Canvas zeichnen. Sondern Du machst es in den Events, wenn der Expander gezeichnet werden soll, also z.B:
Delphi-Quellcode:
Dann hast Du einen Canvas, der in diesem Moment frei ist und auch den Canvas-Bereich, der für dieses Control gilt.
procedure TForm38.Expander1Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
begin end; |
AW: TExpander unter Delphi 10.4.2 Fehler
Zitat:
Dann kannst du exakt den gleichen Code verwenden wie in #9. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz