Recyangle(x1,y1,x2,y2:integer)画矩形有问题

Description of your first forum.

Recyangle(x1,y1,x2,y2:integer)画矩形有问题

帖子syt2000 » 星期日, 2003年4月13日 14:24


我在windows2000下用delphi 6.0编写一个图形编辑程序时发现用画布的
Recyangle(x1,y1,x2,y2:integer)画矩形有问题,请大家帮我分析一下。

procedure TForm1.Button1Click(Sender:TObject);
begin
   Canvas.Pen.Width:=0;             //设置笔宽
   Canvas.Pen.Color:=clRED;
   Canvas.Pen.Mode:=pmCOPY;
   Canvas.Pen.Style:=psSolid;       //设置笔方式为画实线

   Canvas.Brush.Color:=clYELLOW;
   Canvas.Brush.Style:=bsSolid;

   Canvas.Rectangle(-1248,50,800,160);
end;
上面的一段程序可以画一个规定坐标的矩形,但是如果将坐标x1由-1248改为
-1249或以下,例如
   Canvas.Rectangle(-1258,50,800,160);
则画出的举行就不正确了(不能封闭),不知道是什么原因。
但是如果此时将笔宽改为2或2以上则可以了,或者将笔方式改为虚线方式(psDot)也可以。
不知道是何原因?是不是Recyangle(x1,y1,x2,y2:integer)函数中X2-X1的值不能超过2048?
 
 
 

Recyangle(x1,y1,x2,y2:integer)画矩形有问题

帖子huazai » 星期日, 2003年4月13日 19:45


一样的阿
 
 
 

Recyangle(x1,y1,x2,y2:integer)画矩形有问题

帖子dryuy » 星期四, 2003年5月1日 14:52


在delphi5中是一样的