我在Delphi 6中创建自己的组件 除了油漆部分外,该部件工作正常 我的油漆部分就像这样开始
inherited Paint;
if (csdesigning in ComponentState) then
begin
因此,当在运行时创建组件时,它永远不会被绘制,但如果我删除该行 它似乎一直在重新粉刷
有没有办法可以移动(绘制)代码,所以它只能被调用,例如。无效
任何人都会感激不尽,我会感谢你
答案 0 :(得分:4)
Paint()
。例如,如果另一个窗口在组件上移动,然后移开。 Invalidate()
仅仅是一个触发重绘的手动请求。您不应该在调用Paint()
时尝试限制,这不是您的责任。您的责任是在要求涂料时涂漆。
话虽如此,Paint()
只应在实际重新授权时才被调用。如果您的Paint()
被过度调用,那么您做错了。您的Paint()
代码正在执行不应该执行的操作,或者Paint()
之外的代码过于频繁地调用Invalidate()
/ Refresh()
。很难说,因为你没有显示任何实际代码。