首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于PolyPolyline的施用

2012-07-29 
关于PolyPolyline的使用//为什么这样绘制不出东西procedure TForm1.btn28Click(Sender: TObject)varps: a

关于PolyPolyline的使用
//为什么这样绘制不出东西
procedure TForm1.btn28Click(Sender: TObject);
var
 ps: array of TPoint;
 pn:array of Integer;
begin
 {组1:}
 SetLength(ps, 10);
 ps[0].X := 50;
 ps[0].Y := 50;
 ps[1].X := 100;
 ps[1].Y := 50;
 ps[2].X := 125;
 ps[2].Y := 75;
 ps[3].X := 100;
 ps[3].Y := 100;
 ps[4].X := 50;
 ps[4].Y := 100;
 ps[5].X := 25;
 ps[5].Y := 75;
 {组2:}
 ps[6].X := 200;
 ps[6].Y := 25;
 ps[7].X := 300;
 ps[7].Y := 25;
 ps[8].X := 300;
 ps[8].Y := 125;
 ps[9].X := 200;
 ps[9].Y := 125;

 SetLength(pn, 2);
 pn[0] := 6; {组1有6个顶点}
 pn[1] := 4; {组2有4个顶点}

 PolyPolyline(GetDC(0), ps, pn, 2);
end;

//改为如下静态数组就可以了???
procedure TForm1.btn28Click(Sender: TObject);
var 
 ps: array[0..9] of TPoint; 
 pn:array[0..1] of Integer; 
begin 
 {组1:} 
 ps[0].X := 50; 
 ps[0].Y := 50; 
 ps[1].X := 100; 
 ps[1].Y := 50; 
 ps[2].X := 125; 
 ps[2].Y := 75; 
 ps[3].X := 100; 
 ps[3].Y := 100; 
 ps[4].X := 50; 
 ps[4].Y := 100; 
 ps[5].X := 25; 
 ps[5].Y := 75; 
 {组2:} 
 ps[6].X := 200; 
 ps[6].Y := 25; 
 ps[7].X := 300; 
 ps[7].Y := 25; 
 ps[8].X := 300; 
 ps[8].Y := 125; 
 ps[9].X := 200; 
 ps[9].Y := 125; 
 
 pn[0] := 6; {组1有6个顶点} 
 pn[1] := 4; {组2有4个顶点} 
 
 PolyPolyline(Canvas.Handle, ps, pn, 2); 
end; 


[解决办法]
你这两个的画布都不一样,第一GetDC(0)是屏幕,坐标都是屏幕上坐标

第二个Canvas是窗体的Canvas,坐标相对于窗体

热点排行