Einzelnen Beitrag anzeigen

WS1976
(Gast)

n/a Beiträge
 
#5

Re: Geometrische Objekte in Liste speichern

  Alt 8. Jan 2009, 06:26
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
  Mit Zitat antworten Zitat