AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Firemonkey auf Canvas eines Steuerelementes zeichnen

Firemonkey auf Canvas eines Steuerelementes zeichnen

Ein Thema von sko1 · begonnen am 3. Mär 2017 · letzter Beitrag vom 4. Mär 2017
Antwort Antwort
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Firemonkey auf Canvas eines Steuerelementes zeichnen

  Alt 3. Mär 2017, 13:58
Hallo,

aus bestimmten Gründen muss ich direkt auf das Canvas eines TExpanders zeichnen.
Dass ich das im OnPaint machen muss, weiß ich, aber jetzt passiert etwas ganz merkwürdiges:

Delphi-Quellcode:
procedure TForm1.Expander1Paint(Sender: TObject; Canvas: TCanvas;
  const ARect: TRectF);
begin
  Expander1.canvas.BeginScene();
  Expander1.canvas.Clear(Talphacolors.Blue);
  Expander1.canvas.EndScene;
end;

Das gesamte Formular und der Expander wird blau!
Was ist denn nun los?

Nachtrag:
Wenn ich den Code verlagere nach

Delphi-Quellcode:
procedure TForm1.Expander1Painting(Sender: TObject; Canvas: TCanvas;
  const ARect: TRectF);
begin
  Expander1.canvas.BeginScene();
  Expander1.canvas.Clear(Talphacolors.Blue);
  Expander1.canvas.EndScene;
end;

ist das Formular blau und der Expander weiß!

Ciao
Stefan

Geändert von sko1 ( 3. Mär 2017 um 14:01 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Firemonkey auf Canvas eines Steuerelementes zeichnen

  Alt 3. Mär 2017, 14:07
Kann ja sein das ich Blind bin aber ich sehe keinerlei unterschied zwischen beiden Schnipseln.

gruss
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Firemonkey auf Canvas eines Steuerelementes zeichnen

  Alt 3. Mär 2017, 14:28
Einmal der Paint - und einmal der Painting - Event

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

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

AW: Firemonkey auf Canvas eines Steuerelementes zeichnen

  Alt 3. Mär 2017, 18:20
Du machst direkt 2 Fehler:

1. Du musst den vom Event übergebenen Canvas verwenden
2. Du musst das übergebene ARect verwenden, um im Zeichenbereich des Objekts zu bleiben.

Und noch ein Hinweis: Letztlich verwendest Du das OnPaint-Event für Deine Zeichenausgaben. Das OnPainting-Event signalisiert Dir nur, dass das Objekt demnächst gezeichnet wird. Da kannst Du dann, wenn Dein Programmablauf das erfordert, irgendwelche vorbereitenden Sachen machen.

Geändert von Harry Stahl ( 3. Mär 2017 um 18:32 Uhr)
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Firemonkey auf Canvas eines Steuerelementes zeichnen

  Alt 4. Mär 2017, 14:48
Zitat:
1. Du musst den vom Event übergebenen Canvas verwenden
Danke, das war mir bisher nicht so bewusst, wenn ich schon explicit im OnPaint-Event eines Controls bin und dann explicit auch noch Expander1.canvas.... verwende, dann war für mich eigentlich klar dass ich auf dem richtigen Canvas zeichne!

Ciao
Stefan
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz