加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 在运行时插入控件集非常慢

发布时间:2020-12-15 09:38:01 所属栏目:大数据 来源:网络整理
导读:我们有一个销售点应用程序,在这个应用程序中我们有一个滚动框容器.如果卖家选择产品,则会创建新产品行并将其插入滚动框.产品行组件是一个框架 – 文本框,按钮和标签. 但是在运行时将此产品行控件插入到滚动框中会出现一些问题.这很慢.我可以看到选择产品如何
我们有一个销售点应用程序,在这个应用程序中我们有一个滚动框容器.如果卖家选择产品,则会创建新产品行并将其插入滚动框.产品行组件是一个框架 – 文本框,按钮和标签.

但是在运行时将此产品行控件插入到滚动框中会出现一些问题.这很慢.我可以看到选择产品如何将edittext组件慢慢地绘制到滚动框中.

我尝试在ScrollBox.InsertControl之前将组件的可见性设置为false并在之后启用它,但它无助于加快速度.我还读到了关于DisableAlign / EnableAlign的事情,但我不确切知道我必须把这行代码放在哪里.

如何加快将此自定义组件插入到表单的滚动框容器中?

解决方法

TScrollBox没有使用WM_SETREDRAW消息的BeginUpdate / EndUpdate,而是 you can get the same effect.我可能会避免像 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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读