为什么? 我快要疯了Timage方面的问题,高手给解释解释(100分)

  • 主题发起人 主题发起人 电暖气
  • 开始时间 开始时间

电暖气

Unregistered / Unconfirmed
GUEST, unregistred user!
我在窗口上的一个image1画图
1.我先设定image1.Width := 40;//值比较小
然后在image1上画图
2.我再次改变image1.Width := 80;//值比上一次设定的大
然后我再次image1上画图

结果是image1的宽度没有变化,所以加宽部分的图形显示不出来。
 
在设了image1.width:=80;后在加一句image1.graphic.width:=80,再画图就行了。

 
是image1.Picture.graphic.width:=80
 
我怎么没这个问题啊?你的是D4,D5,D6?
 
你看看有没有开了什么自动变化的属性,例如AutoSize,Scale等。
 
1 imagex.width:=40;
2 imagex.Picture.graphic.width:=40;
程序执行到第2行出错
project pmain.exe raised exception class EAccessViolation with
message Access Violation at address 00441AA4 in module
'pmain.exe'. Read of address FFFFFFFF.process stopped .use step or Run to continue
 
在Imagex第一次使用时不能这样设,Imagex里的Picture还没初始化,
第一次使用这样就可以了Imagex.width:=40;
在以后使用才需要这样调用
imagex.width:=40;
imagex.Picture.graphic.width:=40;

 
在画图后再设image.Picture.graphic.width
如:with image1 do
begin
Width:=40;
Canvas.MoveTo(0,0);
Canvas.LineTo(40,40);
Width:=80;
Picture.Graphic.width:=80;//在此设置
MoveTo(0,0);
Canvas.LineTo(80,60);
end;
 
各位老师谢谢了。。。。。。。
 
后退
顶部