Hallo, folgender Code funktioniert: (es wird ein Quadrat gezeichnet)
Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
var rgn : HRGN;
plist : array [0..4] of TPoint;
begin
Canvas.Brush.Color := clRed;
plist[0] := Point(100,100);
plist[1] := Point(100,200);
plist[2] := Point(200,200);
plist[3] := Point(200,100);
plist[4] := Point(100,100);
rgn := CreatePolygonRgn(plist,5,Winding);
PaintRgn(Canvas.Handle,rgn);
end;
(Mal davon abgesehen, dass ich die Rgn nicht freigebe !)
Versuche ich das Ganze nun mit einem dynamischen Array, funktioniert es nicht !
Wo ist mein Denkfehler ?
Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
var rgn : HRGN;
plist : array of TPoint;
begin
Canvas.Brush.Color := clRed;
setlength(plist,5);
plist[0] := Point(100,100);
plist[1] := Point(100,200);
plist[2] := Point(200,200);
plist[3] := Point(200,100);
plist[4] := Point(100,100);
rgn := CreatePolygonRgn(plist,5,Winding);
PaintRgn(Canvas.Handle,rgn);
end;