在canvas上画图的问题

whatname 2001-06-26 02:44:46
我在paintbox的canvas上画图(如用 lineto等方法)
画完后 如果有别的 控件或窗体(如dialogform) 出现在这上面的话
原来画出来的东西就会被擦去

怎么能不让它擦去呢?
...全文
144 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
whatname 2001-06-27
  • 打赏
  • 举报
回复
可以了

用iamge.picture:=nil

ok
whatname 2001-06-27
  • 打赏
  • 举报
回复
象 pintbox就可以 用repaint清除掉原来的
cobi 2001-06-27
  • 打赏
  • 举报
回复
第一次画的时候除了在image上画时,先使用一个image保存原始图案。当要清除的时候,使用copyrect覆盖即可。
whatname 2001-06-27
  • 打赏
  • 举报
回复
在image上画的确可以

可是怎么把已经画上去的再清除掉呢?

:((((
dbxmcf 2001-06-27
  • 打赏
  • 举报
回复
用一个数组(如果高兴用链表也可以)把该用的信息存起来,象vc一样用Invalidate();方法,在OnPaint中添加画图代码
whatname 2001-06-27
  • 打赏
  • 举报
回复
好的 我试是

但是 Timage的canvas怎么将 已经画的 清除掉??
noall 2001-06-27
  • 打赏
  • 举报
回复
用paintbox就得重画,用luzhihu(鲁智虎)的方法吧!
luzhihu 2001-06-27
  • 打赏
  • 举报
回复
这个问题好解决,把paintbox换成Timage控件就不会有这样的问题了,也就是在image的canvas上画图。
whatname 2001-06-27
  • 打赏
  • 举报
回复
这样

重画的频率太高了
m_leaner 2001-06-26
  • 打赏
  • 举报
回复
当有别的空间或窗体在上面显示时 会把已经画的擦去 ,这是因为窗口重新绘制造成的,你在canvas画的代码应该放到onpain事件里,窗口每次重绘都会调用该事件,这样被插曲的现象就不会发生了
猛禽 2001-06-26
  • 打赏
  • 举报
回复
放一个PAINTBOX控件,在ONPAINT里画即可
whatname 2001-06-26
  • 打赏
  • 举报
回复
可是在canvas上画的图形

当有别的空间或窗体在上面显示时 会把已经画的擦去
windindance 2001-06-26
  • 打赏
  • 举报
回复
InsideDelphi(ID)说得很清楚了呀
procedure Form.PaintBoxPaint()
begin
PaintBox.Canvas.LineTo();
end;
whatname 2001-06-26
  • 打赏
  • 举报
回复
up
InsideDelphi 2001-06-26
  • 打赏
  • 举报
回复
在onPaint里面画

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧