Hallo,
für jeden Typ eine Klasse? Viel zu umständlich.
ich würde eine Klasse nutzen in der es ein Array of Tpoint gibt. Zusätzlich definierst du dir einen Aufzählungstyp sodass du nachher fesstellen kannst was in der Klasse gespeichert wurde.
Willst du z.B. zusätzlich eine Zeichenroutine einfügen kannst du das mit canvas.polygon (weiss nicht exakt wie die procedure heisst) machen.
Delphi-Quellcode:
Ageotyp=(Dreieck,Viereck,Kreis);
Tgeometrie=class
punkte:array of Tpoint;
parameter:array of integer; //Radius für Kreis, 2 Radien für Ellipse
geotyp:Ageotyp; //Ageotyp musst du als Aufzählungstyp definieren Ageotyp=(Dreieck,Viereck,Kreis)
Constructor, Destructor, Prozeduren......
end;
Beide Arrays sind offen, das heisst du musst, bevor du sie nutzen kannst die Grösse festlegen.
Als Beispiel für die Definition eines Kreises(habs nicht ausprobiert, also nicht böse sein wenn Fehler drin sind):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a:Tgeometrie;
begin
a.Create;
a.geotyp:=Kreis;
setlength(a.punkte,1);
setlength(a.parameter,1);
a.punkte[0].X:=100; //Mittelpunkt X Wert
a.punkte[0].Y:=100; //Mittelpunkt Y Wert
a.parameter[0]:=50; //Radius
end;
Versuchs einfach mal, solltest du nicht zurecht kommen kannst du ja deinen Code posten.
Ich hoffe dir ist damit geholfen.
Grüsse
Rainer