问个Tcanvas的问题! ( 积分: 5 )

  • 主题发起人 主题发起人 mill666
  • 开始时间 开始时间
M

mill666

Unregistered / Unconfirmed
GUEST, unregistred user!
我在 form1上用canvas画了一条直线,可是当切换窗口后又切换回form1的时候,发现这个线不见了,象被擦掉了一样。
好像用canvas画的图形都是这么样一个问题。
怎么样才能避免??
 
我在 form1上用canvas画了一条直线,可是当切换窗口后又切换回form1的时候,发现这个线不见了,象被擦掉了一样。
好像用canvas画的图形都是这么样一个问题。
怎么样才能避免??
 
在form1中放一个image1,在image1.canvas中画.
 
procedure TForm1.FormPaint(Sender: TObject);
begin
Form1.Canvas.MoveTo(100,100);
Form1.Canvas.LineTo(200,200);
end;
 
定义一个设备无关位图
然后在这个位图上做图
然后在FormPaint事件中将做好的位图显示到Form上
这样就每次都可以看到了
 
你必须把你所要做的绘制工作放在OnPaint事件中,否则如果你的图像被覆盖就不会再次显示了。
 
各位大侠,放在onpaint里面程序只能写死的了,
可是我的程序里面需要动态的,也就是根据不同的条件在canvas输出不同的东东。
这样的法,好像就不能写死在onpaint里面了。

不知道还有没有好的办法??
 
用我的方法啊
你把本该在Form1.Canvas上的做图全部都做到自定义的位图上
然后每次更改后刷新一下
就问题了
这个方法我在实际中已经用过了
 
Mike1234567890 大侠,能不能详细一些?
定义一个设备无关位图,
然后在这个位图上做图;
这要怎么写啊??把你的程序贴一点出来。
谢谢
 
不想写死的就用PaintBox控件 他是专门画动态图的
 
难道写到paint中就一定会写死?什么逻辑啊....不一样可以用条件控制
 
后退
顶部