这是代码:
procedure TForm1.FormPaint(Sender: TObject);
var
tmp:array of tpoint;
begin
setlength(tmp,4);
tmp[0].X:=10;
tmp[0].Y:=10;
tmp[1].X:=100;
tmp[1].Y:=10;
tmp[2].X:=100;
tmp[2].Y:=100;
tmp[3].X:=10;
tmp[3].Y:=100; rgn:=CreatePolygonRgn(tmp,4,ALTERNATE);
self.Canvas.Brush.Color:=clred;
if fillrgn(self.Canvas.Handle,rgn,self.Canvas.Brush.Handle) then
showmessage('ddd');
end;
end;
我在FORM的ONPAINT事件中写的,可是运行时什么也看不到。 showmessage('ddd');
没有执行,而且跟踪时 rgn:=CreatePolygonRgn(tmp,4,ALTERNATE);返回0
我不知道那里错了。
procedure TForm1.FormPaint(Sender: TObject);
var
tmp:array of tpoint;
begin
setlength(tmp,4);
tmp[0].X:=10;
tmp[0].Y:=10;
tmp[1].X:=100;
tmp[1].Y:=10;
tmp[2].X:=100;
tmp[2].Y:=100;
tmp[3].X:=10;
tmp[3].Y:=100; rgn:=CreatePolygonRgn(tmp,4,ALTERNATE);
self.Canvas.Brush.Color:=clred;
if fillrgn(self.Canvas.Handle,rgn,self.Canvas.Brush.Handle) then
showmessage('ddd');
end;
end;
我在FORM的ONPAINT事件中写的,可是运行时什么也看不到。 showmessage('ddd');
没有执行,而且跟踪时 rgn:=CreatePolygonRgn(tmp,4,ALTERNATE);返回0
我不知道那里错了。
把 tmp:array of tpoint;
改为tmp:array[0..3] of tpoint
然后去掉setlength(tmp,4);
就可以了。