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:
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;
Mit freundlichen Grüßen
Christian18