Es geht auch ohne verkettet Liste und dem Pointer-Gedönse.
Delphi-Quellcode:
type
TLinienZug = record
pt: Tpoint;
end;
var
LinienZug: array of TLinienZug;
LenLinienZug: Cardinal = 0;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Inc(LenLinienZug);
setlength(LinienZug, LenLinienZug);
LinienZug[LenLinienZug-1].pt.X := X;
LinienZug[LenLinienZug-1].pt.Y := Y;
Listbox1.Items.Add('x: '+IntToStr(LinienZug[LenLinienZug-1].pt.X)+' , y: '+IntToStr(LinienZug[LenLinienZug-1].pt.Y));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Loop: Cardinal;
begin
Canvas.MoveTo(LinienZug[0].pt.X, LinienZug[0].pt.Y);
for Loop := 0 to LenLinienZug-1 do
Canvas.LineTo(LinienZug[Loop].pt.X, LinienZug[Loop].pt.Y);
end;