Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
[b] TSchildi = record
x,y,w:real;[/b]
stift:boolean;
end;
var
Form1: TForm1;
Schildi: Tschildi;
implementation
{$R *.lfm}
{ TForm1 }
procedure stift_ab;
begin
Schildi.stift:=true;
end;
procedure stift_auf;
begin
Schildi.stift:=false;
end;
procedure drehen(winkel:real);
begin
Schildi.w:=(Schildi.w-winkel)
end;
procedure start(x0,y0,w0:real);
begin
schildi.x:=x0;
schildi.y:=y0;
schildi.w:=w0;
end;
[b][u]procedure laufen(strecke:real);
begin
form1.canvas.moveto(round(schildi.x),round(schildi.y));
schildi.x:=strecke*cos(schildi.w*pi div 180);
schildi.y:=strecke*sin(schildi.w*pi div 180);
if schildi.stift then form1.canvas.lineto((round(schildi.x)),round(schildi.y));
end;[/u][/b]
procedure TForm1.Button1Click(Sender: TObject);
begin
start(200,200,0);
stift_ab;
drehen(45);
laufen(141);
stift_auf;
end;
end.
Jedenfalls kommt in dem unteren fett gedruckten Teil bei der procedure laufen eine Fehlermeldung
Error: Operator is not overloaded: "Extended" div "Byte"
Kann mir jemand helfen diesen Fehler zu beheben oder allgemein wie ich mit Winkeln rechnen kann?
PS: Ich will mittels dieses Programmes, welches weitesgehend unverändert bleiben sollte, eine procedure erstellen mit der ich ein beliebiges n-eck erstellen kann. Falls mir da noch jemand einen Tipp geben könnte, wäre es nett, man muss mir aber nicht helfen bei diesem Problem.