Guten Morgen,
indem du halt an jedem neuen Punkt auch einen neuen Punkt erzeugst:
Delphi-Quellcode:
rocedure TFrame1.FrameClick(Sender: TObject);
var
I: integer;
begin
self.CheckListen;
Punkt := TPunkte.create; //<- Hier
Punkt.y_koordinat := Poly.SaveKoordinaty;
Punkt.x_koordinat := Poly.SaveKoordinatx;
Poly.Liste.Add(Punkt);
Label5.Caption := '';
for I := 0 to Poly.Liste.Count - 1 do
begin
Label5.Caption := Label5.Caption + slinebreak + ' Koordinat y ; Position' +
inttostr(I) + inttostr(Poly.Liste[I].y_koordinat) + slinebreak +
' Koordinat x Position ' + inttostr(I) + ' ' +
inttostr(Poly.Liste[I].x_koordinat);
end;
end;
wobei ich allerdings nicht verstehe, warum die Koordinaten aus Poly gelesen werden und anschließend in die Liste zurück wandern. Sinnvoller wäre folgender Ansatz:
Delphi-Quellcode:
TPoly = class(TObject)
protected
function getnextkonvexhullpoint(punkt: TPunkte): TPunkte;
private
function LookHightKoordinat(punkte: TPunkte): TPunkte;
Liste: Tobjectlist<TPunkte>;
function SaveKoordinatx: integer;
function SaveKoordinaty: integer;
public
function Add:TPunkte;
constructor create; overload;
end;
...
function TPoly.Add:TPunkte;
begin
result := TPunkte.Create;
result.X := SaveKoordinatx;
result.y := SaveKoordinaty;
Lisite.Add(Result);
end;
dann musst Du von außen nur noch Poly.add aufrufen und die ganzen Internas werden versteckt. Nennt sich Kapselung - ein Grundprinzip von
OOP.
Grüße