如何解决在运行时插入控件集非常慢
| 我们有一个销售点应用程序,在这个应用程序中,我们有一个滚动框容器。如果卖方选择一种产品,则会创建一个新产品行并将其插入到滚动框中。产品行组件是一个框架-文本框,按钮和标签在其中。 但是通过在运行时将此产品行控件插入到滚动框中,这是一个小问题。太慢了我可以看到选择产品如何将edittext组件缓慢地拖到滚动框中。 我尝试将组件的“ 0”设置为“ 1”之前为false,然后在其之后启用它,但是这样做并不能大大加快速度。我也阅读了有关DisableAlign / EnableAlign的内容,但我不知道确切将这行代码放在什么位置。 如何加快将此自定义组件插入到表单的滚动框容器中的速度?解决方法
TScrollBox没有BeginUpdate / EndUpdate,但是您可以使用WM_SETREDRAW消息获得相同的效果。我可能会避免使用诸如LockWindowUpdate之类的笨拙方法。
SendMessage(ScrollBox1.Handle,WM_SETREDRAW,0);
try
// add controls to scrollbox
// set scrollbox height
finally
SendMessage(ScrollBox1.Handle,1,0);
RedrawWindow(ScrollBox1.Handle,nil,RDW_ERASE or RDW_INVALIDATE or RDW_FRAME or RDW_ALLCHILDREN);
end;
, 通常,将控件添加到容器只需很少的时间。很有可能这与控件的创建而不是插入有关。
, 在添加控件时尝试禁用屏幕更新,并在最终尝试例程中完成后启用屏幕更新。然后,在放置所有控件时,不必为每个单独的控件更新屏幕,而只需更新一次。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。