Also ich hab das ganze auch mal gemacht. Ich hab zwar ein TImage zum zeichnen genommen, aber du könntest einfach die Image1 durch PaintBox ersetzten.
Code ist eig. selbstklärend. Ich habe ihn sogar so konstruiert, dass er sich jeder Größe anpasst.
Delphi-Quellcode:
procedure TForm1.DrawCoords;
var
i,h: Integer;
begin
with Image1.Canvas do
begin
Pen.Color:=clBlack;
//Ordinate & Abszisse
MoveTo(0, Image1.Height div 2);
LineTo(Image1.Width, Image1.Height div 2);
MoveTo(Image1.Width div 2, 0);
LineTo(Image1.Width div 2, Image1.Height);
//Skalierung
for i := 1 to 10 do
begin
h := i * (Image1.Width div 10);
MoveTo(h, (Image1.Height div 2) - 5);
LineTo(h, (Image1.Height div 2) + 5);
MoveTo((Image1.Width div 2) - 5, h);
LineTo((Image1.Width div 2) + 5, h);
end;
//Beschriftung
TextOut((Image1.Width div 2) + 3,(Image1.Height div 2) + 1, '0');
TextOut((Image1.Width div 2) + 48, (Image1.Height div 2) + 6,'1');
TextOut((Image1.Width div 2) + 6,(Image1.Height div 2) - 56,'1');
//Preifspitzen
MoveTo(Image1.Width - 5, (Image1.Height div 2) - 5);
LineTo(Image1.Width, (Image1.Height div 2));
LineTo(Image1.Width - 5, (Image1.Height div 2) + 5);
MoveTo((Image1.Width div 2) - 5, 5);
LineTo((Image1.Width div 2), 0);
LineTo((Image1.Width div 2) + 5, 5);
end;
end;
//Edit: Allerdings sollte der Zeichengrund rechteckig sein, sonst musst du die for-Schleife überarbeiten. Und wenn man das Koordinatensystem verändern können soll, ist der Code hier auch schlecht. Also alles in allem ein Beispiel wie's gehen kann