
Und zwar habe ich ebend ein Programm geschrieben, in dem in ein Imagefeld ein Vieleck gezeichnet werden soll.
Die Anzahl der Ecken sollen aus einem Spineditfeld entnommen werden.
Würde mich freuen wenn jemand den Fehler findet ^^
Beim starten des Programmes passiert nichts, nur ein weißes Imagefeld wird angezeigt!

Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
VAR anzahl_ecken: integer;
xm: integer;
ym: integer;
i: integer;
radius: integer;
x: integer;
y: integer;
winkelschritt: double;
winkel: double;
begin
radius:=200;
form1.Image1.canvas.Brush.color:=clwhite;
form1.Image1.canvas.Fillrect(rect(0,0,image1.width,image1.height));
form1.Image1.canvas.Pen.color:=clblack;
xm:=image1.width div 2;
ym:=image1.Height div 2;
anzahl_ecken:=strtoint(spinedit1.Text);
winkelschritt:=2*pi/anzahl_ecken;
image1.canvas.moveto(xm+radius,ym);
FOR i:=1 TO anzahl_ecken DO
winkel:=i*winkelschritt;
x:=round(cos(winkel)*radius)+xm;
y:=round(sin(winkel)*radius)+ym;
image1.canvas.lineto(x,y);
application.processmessages;
end;
end.