Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: FMX 10.4.2 : TRoundrect.canvas.endscene Crash

  Alt 22. Mai 2021, 10:14
Eigentlich reicht ein simples

Delphi-Quellcode:
  // ... Whatever here
  RoundRect1.Fill.Color := TAlphaColorrec.gray;
aus, um die Farbe des Roundrect auf Grau zu setzen.

Davon abgsehen ist es gar keine gute Idee - weder unter Windows VCL, noch unter FMX - direkte Zeichenaktionen auf Canvas von Objekten im Klick-Event zu machen.

Dafür sind die Onpaint-Events da, da sollen sich die Objekte selber neu zeichnen. Falls man da was spezielles zeichnen will, kann man das da aber auch tun, aber eben nur da. Alles andere macht auch keinen Sinn, da Zeichenausgaben auf dem Canvas nur flüchtig sind. Wenn Du in einem Button-Event auf dem Canvas des Controls malst, reicht es schon, ein anderes Formular über das Control zu ziehen, schon sind Deine Malaktionen verloren. Oder das Form erhält aus irgendeinem Grund den Auftrag sich neu zu zeichnen, auch da gehen Deine Zeichnungen aus dem OnClick-Event verloren.

Ansonsten würde ich nur die Objekte wie gewünscht verändern und dann einfach nur das Objekt sich neu zeichnen lassen.

Manchmal kriegt man das nur mit Control.beginupdate; Control.endupdate; hin (wobeil Control hier steht z.B. für Stringgrid, Troundrecht, was auch immer).
  Mit Zitat antworten Zitat