此错误出现在
Refresh事件中已经有绘图代码
而再有窗体弹出对话框覆盖绘图区域(即需要被Redraw部分)
的情况下http://www.delphifaq.com/fq/q4053.shtml
此处有一些说明,但是
用了他所说的Lock或者TryLock的方法,在UnLock时程序挂起自己尝试使用全局变量的方法,在对话框弹出的前后,加以对Refresh事件的互斥限制
但也没有效果,到底如何解决?
Refresh事件中已经有绘图代码
而再有窗体弹出对话框覆盖绘图区域(即需要被Redraw部分)
的情况下http://www.delphifaq.com/fq/q4053.shtml
此处有一些说明,但是
用了他所说的Lock或者TryLock的方法,在UnLock时程序挂起自己尝试使用全局变量的方法,在对话框弹出的前后,加以对Refresh事件的互斥限制
但也没有效果,到底如何解决?
还有一个原因就是CANVAS被锁定,没有解锁,一般用Canvas.Lock时,一定要这样写:
Canvas.Lock;
try
执行的语句
finally
Canvas.Unlock;
end;
you are attempting to draw to an device context that is not yet valid. Such as in the create constructor of a component.
you are trying to draw on a canvas while your last draw-operation has not finished yet. In this case you can use Canvas.Lock() or Canvas.TryLock() to fix it.