Erst mal auf TPoint und ein dynamisches Array umstellen. Zweitens gibt es eine Polygon-Methode von TCanvas. Drittens willst du wahrscheinlich eine Polyline malen (ebenfalls eine Methode von TCanvas). Der Unterschied ist das ein Polygon eine Flaeche ist und daher innen und aussen besitzt (entsprechend wird auch beim Malen der Innenbereich gefuellt). Eine Polyline ist nur ein Linienzug. Ein Polygon wird auch geschlossen, indem vom letzten zum ersten Punkt eine Verbindung impliziert wird.
Delphi-Quellcode:
implementation
{$R *.dfm}
var
N: integer;
Points: array of TPoint;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if button = mbleft then
image1.Canvas.Rectangle(x-7,y-7,x+7,y+7);
n := n+1;
SetLength(Points, n);
Points[n-1].X := X;
Points[n-1].Y := Y;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
image1.Canvas.Polygon(Points);
end;
end.