【发布时间】:2010-09-22 06:35:54
【问题描述】:
在 Delphi 2006 中,我展示了一个模态表单。该表单中的用户输入可以更改当前可能显示在作为主表单的父表单上的数据。为了反映这些变化,我需要在主窗体上强制重新绘制一些自绘组件。我试图从模态表单中这样做:
MainForm := Application.MainForm;
MainForm.Invalidate;
MainForm.Update;
这并没有改变。我一直认为表单上的“更新”总是会立即重新绘制 - 显然不是这样。绘画代码本身应该没问题,因为我可以将模态表单移动到那些 ownerdraw 组件上以强制手动重绘。
但是当数据发生变化时,如何以编程方式强制重绘?
编辑:我将在下周尝试 Application.ProcessMessages 和 Refresh,感谢您的建议。
很抱歉这么久才回复,感谢所有回复的人。调用 Refresh() 是解决方案的一部分,但它必须在自定义绘图组件上完成,而不是在它们所在的表单上......现在我想接受多个答案;-)
【问题讨论】:
标签: delphi