关于用Image绘图的一个菜鸟问题,困饶我好几天了,国庆都没有耍好,请大家帮帮忙!!分不够可以再加!(50分)

  • 主题发起人 主题发起人 LearningAug
  • 开始时间 开始时间
L

LearningAug

Unregistered / Unconfirmed
GUEST, unregistred user!
我把 Image放在 Form上,设置 Image的 Align属性为 [red]Client[/red]。
现在只要[red]先[/red]在 Image上面绘图,然后再拖动 Form,Image 的大小此时就不会跟着Form 的大小改变而改变了,而且此时再在 Image上绘图,有很明显的闪烁感,请问各位大虾,我应该怎么解决这个问提!(我想 Image的大小不管任何时候都跟着 Form的大小而改变,并且在上面绘图的时候没有闪烁感) 先谢谢各位了!
 
有一个双缓存属性设置为真就好了

form1.DoubleBuffered:=true;
 
To:wqhatnet
很感谢你的回复,你的答案解决了绘图闪烁的问题,但是 Image的大小却并没有随着 Form大小的改变而改变,请问这个应该怎么解决呢?我已经把 Image的 Align属性设置为 Client了,但是当拖动 Form的时候,Image 却没有跟着 Form的改变而改变。
 
procedure TForm1.FormResize(Sender:TObject);
var
backbitmap:tbitmap;
begin
backbitmap:=tbitmap.create;
try
backbitmap.assign(Image1.picture.bitmap); // 先将原来画的东西保存起来
Image1.Picture.Graphic:=nil; //清除原来的内容,否则没法改变大小。
Image1.Width:=Form1.Width;
Image1.Height:=Form1.Height;
Image1.Canvas.draw(0,0,backbitmap); // 再把原图画回去
finally
backbitmap.free;
end;
end;
 
多人接受答案了。
 
后退
顶部