Delphi paintbox.canvas所画的图形拖到屏幕外面,再拖回来看图像就被清除了,怎么处理保证图像一直存在


如图,图像都被擦除了一半了,onpaint事件可以,但是图像一直在闪,不好,且我会根据设置需要变换不同的图像,在onpaint事件里面做变化图像特麻烦。有没有什么方法属性,或者其他画图方法。
...全文
500 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
解决问题了,我现在用image.canvas来画的,image.picture.bitmap.width可以设置很大,所以满足现在的需求了。至于二缓冲也是个好办法,只是我没需要每时每刻都刷新图片,要是做动态画面变化的话可以试试的,谢谢各位帮助
santiaodahan 2017-01-23
  • 打赏
  • 举报
回复
画在Image组件上可以保持持久性。用PaintBox就应该在OnPaint中重绘,这没有问题。重绘闪烁可以用双缓冲的方式,比如先画在一个bitmap上,然后PaintBox1.Canvas.Draw(0,0, bitmap);
蓝色光芒 2017-01-23
  • 打赏
  • 举报
回复
Form的OnCreate方法上,加上 procedure TForm1.FormCreate(Sender: TObject); begin Self.DoubleBuffered := True; end; 这样就不会太闪烁,如果刷新相当快,用Canvas是明显不行的了,那要用DirectDraw了
lyhoo163 2017-01-23
  • 打赏
  • 举报
回复
建议使用二缓冲,一个显示,一个临时存贮。这样,可以快速重绘和复制。
  • 打赏
  • 举报
回复
用Image来画确实可行,但是另外一个问题来了,我在另外一个程序用image.canvas画图,软件全屏后image已经设置为alltop了,但是image.width不会变到最大,我验证了image.width的最大值只有755那么大,设置超过也会自动默认755。这怎么办哦

5,379

社区成员

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

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