有一个非常奇怪的问题。
我首先在一个Form上放置了一个Panel,然后在Panel上放置了两个Image,它们分别是
image1和image2。
用bbkxjy的方法在它们之间画一条连线,完全正确。
如果我在程序中用动态的方法再在Panel上增加一个Image3,然后在它们之间
画线,结果靠近image3的一部分线就不见了。
程序如下:
procedure TForm1.Button2Click(Sender: TObject);
var
x1, x2, x3, y1, y2, y3: integer;
begin
image3 := TImage.Create(self.Panel1);
image3.Parent := self.Panel1;
image3.Width := image2.Width;
image3.Height := image2.Height;
image3.Picture.LoadFromFile('technlgy.ico');
image3.Left := 10;
image3.Top := 10;
image3.OnClick := self.ImageClick;
x1 := image1.Left;
y1 := image1.Top;
x2 := image2.Left;
y2 := image2.Top;
x3 := image3.Left + image3.Width;
y3 := image3.Top + image3.Height;
//showmessage(inttostr(x3) + '|' + inttostr(y3));
with TCrackPanel(Panel1).Canvas do
begin
moveto(x3,y3);
lineto(x2,y2);
moveto(x3,y3);
lineto(x1,y1);
end;
end;
更为奇怪的是如果我在程序中增加一条显示语句showmessage,在弹出显示框后,我按了
对话框的OK键后,程序显示的画线结果就是正确的。
请再指点一下。