![]() |
Diagramm selber schreiben
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich bin gerade dabei ein Diagramm selber zu schrieben. dabei ist mir aufgefallen, dass es nicht so wirklich funktioniert. Ich habe ein Image erstellt wo Ihr meinen Fehler mal anschauen könnt. Mein Problem ist folgendes: - wenn ich die Striche auf meinen Achsen einzeichne, dann macht das Programm das zwar auch, aber ich finde das es nicht genau ist. Kann es sein das diese Differenz zum wirklichen ende der achse durch irgendwelche rundungen kommt die Delphi vornimmt??? Hier jetzt noch mal mein Code:
Delphi-Quellcode:
Mit freundlichen Grüßen
procedure TForm1.FormShow(Sender: TObject);
var i : TImage; // Image zum Anzeigen des Diagramms r : Integer; // Rand wx, wy : Integer; // Breite zwischen den Strichen j : Integer; // Schleifenvariable begin // Parameter setzen i:=Image1; r:=30; // Rahmen zeichnen i.Canvas.Rectangle(0, 0, i.Width, i.Height); // Achsen zeichnen i.Canvas.MoveTo(r, r); i.Canvas.LineTo(r, i.Height - r); i.Canvas.LineTo(i.Width - r, i.Height - r); // Skallierung berechnen und zeichnen wx:=(i.Width - 2 * r) div 11; wy:=(i.Height - 2 * r) div 5; for j:=0 to 11 do begin i.Canvas.MoveTo(r + wx * j, i.Height - r); i.Canvas.LineTo(r + wx * j, i.Height - r + 3); i.Canvas.MoveTo(r, i.Height - r - wy * j); i.Canvas.LineTo(r - 3, i.Height - r - wy * j); end; end; Christian18 |
Re: Diagramm selber schreiben
Zitat:
Bei den Methoden MoveTo, LineTo verwendest du die Funktion Round, um auf ganze Pixel zu runden.
Delphi-Quellcode:
.MoveTo(r + Round(wx * j), i.Height - r);
|
Re: Diagramm selber schreiben
Hallo,
meinst du wirklich das es daran liegt??? Ich habe es mal getestet und ich habe keinen unterschied feststellen können. Mit freundlichen Grüßen Christian18 |
Re: Diagramm selber schreiben
Hast du auch div durch / ersetzt?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 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 by Thomas Breitkreuz