Delphi 6:检测窗体何时完全绘制?

Delphi 6:检测窗体何时完全绘制?,delphi,resize,refresh,onload,paint,Delphi,Resize,Refresh,Onload,Paint,是否有一种简单方便的方法来判断TForm上的所有组件、框架和子控件何时都已完全绘制?我基本上是在寻找网页中发现的onload()事件的等价物,但是是在Delphi表单的上下文中。最好,即使某些表单元素当前不可见,这种技术仍然可以工作,并且在表单调整大小后,它也会再次启动。当不同的表单元素自动调整其大小时,我有一些表单元素“抖动”,我想关闭重新绘制,直到完成所有操作以获得更干净的外观。Delphi控件有一个BeginUpdate和EndUpdate过程。回到我做Delphi编程的时候——已经有一段

是否有一种简单方便的方法来判断TForm上的所有组件、框架和子控件何时都已完全绘制?我基本上是在寻找网页中发现的onload()事件的等价物,但是是在Delphi表单的上下文中。最好,即使某些表单元素当前不可见,这种技术仍然可以工作,并且在表单调整大小后,它也会再次启动。当不同的表单元素自动调整其大小时,我有一些表单元素“抖动”,我想关闭重新绘制,直到完成所有操作以获得更干净的外观。

Delphi控件有一个BeginUpdate和EndUpdate过程。回到我做Delphi编程的时候——已经有一段时间了——我们想要加载一个需要大量数据的网格,我们会在加载之前调用BeginUpdate,然后在加载完成之后调用EndUpdate。这告诉控件停止接收消息(即在加载新记录时滚动),并等待一次更新-使所有内容“看起来”更快。您可以将控件设置为BeginUpdate模式,直到重新绘制完成,然后EndUpdate以同步所有内容。

Delphi控件具有BeginUpdate和EndUpdate过程。回到我做Delphi编程的时候——已经有一段时间了——我们想要加载一个需要大量数据的网格,我们会在加载之前调用BeginUpdate,然后在加载完成之后调用EndUpdate。这告诉控件停止接收消息(即在加载新记录时滚动),并等待一次更新-使所有内容“看起来”更快。您可以将控件设置为“开始更新”模式,直到重新绘制完成,然后设置为“结束更新”以同步所有内容。

查看Double Buffered属性:

确定控件的图像 直接渲染到窗口或 首先绘制到内存中的位图。 Delphi语法:属性 双缓冲:布尔;描述 如果DoubleBuffered为false,则 窗口控件自身绘制 直接到窗口。什么时候 DoubleBuffered为true,窗口 控件将自身绘制为内存中的 然后用于绘制图形的位图 窗双缓冲降低了成本 控件启动时的闪烁量 重新绘制,但内存更多 密集的当打开窗口控件时 停靠站点,并具有关联的停靠 经理,它必须是双缓冲的。 注意:某些控件,例如 诡计,无法将自己描绘成 位图。对于此类控制, DoubleBuffered必须设置为false


看看双缓冲属性:

确定控件的图像 直接渲染到窗口或 首先绘制到内存中的位图。 Delphi语法:属性 双缓冲:布尔;描述 如果DoubleBuffered为false,则 窗口控件自身绘制 直接到窗口。什么时候 DoubleBuffered为true,窗口 控件将自身绘制为内存中的 然后用于绘制图形的位图 窗双缓冲降低了成本 控件启动时的闪烁量 重新绘制,但内存更多 密集的当打开窗口控件时 停靠站点,并具有关联的停靠 经理,它必须是双缓冲的。 注意:某些控件,例如 诡计,无法将自己描绘成 位图。对于此类控制, DoubleBuffered必须设置为false


你问错问题了。与其询问检测绘制结束事件,不如询问如何定位控件而不闪烁。完全不同的问题,尤其是当你考虑控制不断更新自己,所以他们从来没有完成绘画。我建议你编辑你的问题,让它问你真正想知道的。你问错了问题。与其询问检测绘制结束事件,不如询问如何定位控件而不闪烁。完全不同的问题,尤其是当你考虑控制不断更新自己,所以他们从来没有完成绘画。我建议你编辑你的问题,让它问你真正想知道什么。