Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Neuzeichnen bei Diagrammkompo aus TImage (https://www.delphipraxis.net/26363-neuzeichnen-bei-diagrammkompo-aus-timage.html)

F.W. 22. Jul 2004 15:45


Neuzeichnen bei Diagrammkompo aus TImage
 
Hallöle :-D !!

Bastel mir gerade meine eigene kleine Diagrammkomponente. Soll nur ganz einfach sein, ne X und Y Achse, Beschriftung und n paar Werte rein!

Ich hab jetzt die Zeichnuntg der X und Y Achse, außerdem hab ich das Repaint überschrieben (override+inherited) und lasse darin meine Achsen neuzeichnen:
Delphi-Quellcode:
procedure TDiagramm.DrawNewX;
begin
 Canvas.MoveTo(50, Height-50);
 Canvas.LineTo(Width-50, Height-50);
end;

procedure TDiagramm.DrawNewY;
var
 XPos, YPos: Integer;
begin
 Canvas.MoveTo(50, Height-50);
 Canvas.LineTo(50, 50);

{ XPos := Canvas.TextWidth(FYBeschriftung);
 YPos := Canvas.TextHeight(FYBeschriftung);
 Canvas.TextOut(50-(XPos div 2), 50-Ypos, FYBeschriftung);}// -> die Y-Achse hat eine Beschriftung oben drauf -> ist hier aber eigentlich nicht wichtig
end;

procedure TDiagramm.Repaint;
begin
 Picture := NIL; // -> Damit keine alten Reste übrig bleiben
 Canvas.Brush.Color := clwhite; // -> hab ich versuchsweie mit reingeschrieben
 Canvas.Pen.Color := clblack; // ->            ||

 DrawNewX;
 DrawNewY;
end;
1. Ist es gut die Achsen im Repaint neu zu zeichnen?
2. Wenn ich die Größe des Diagramms ändere, soll automatisch alles neugezeichnet werden, wie könnt ich das umsetzen?

Mfg F.W.

fkerber 29. Jul 2004 07:07

Re: Neuzeichnen bei Diagrammkompo aus TImage
 
Hi!

Irgendwie sehe ich bei deinem Repaint das inherited nicht, kann das sein?
Zu 2): Ruf doch einfach Repaint auf, oder?

Ciao fkerber

F.W. 29. Jul 2004 13:03

Re: Neuzeichnen bei Diagrammkompo aus TImage
 
Das neuzeichnen hab ich so halbwegs hingekriegt, alle in allem ist Kompo fertig. Soll ja nur für mich sein, aber trotzdem danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:08 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