evi*_*one 4 delphi user-interface controls delphi-xe
我们有一个销售点应用程序,在这个应用程序中我们有一个滚动框容器.如果卖家选择产品,则会创建新产品行并将其插入滚动框.产品行组件是一个框架 - 文本框,按钮和标签.
但是在运行时将此产品行控件插入到滚动框中会出现一些问题.这很慢.我可以看到选择产品如何将edittext组件慢慢地绘制到滚动框中.
我试图在visibility之前将组件设置为false ScrollBox.InsertControl并在之后启用它,但它无助于加快速度.我还读到了关于DisableAlign/EnableAlign的事情,但我不确切知道我必须把这行代码放在哪里.
如何加快将此自定义组件插入到表单的滚动框容器中?
Bru*_*Gee 11
TScrollBox没有BeginUpdate/EndUpdate,但您可以使用WM_SETREDRAW消息获得相同的效果.我可能会避免使用像LockWindowUpdate这样的重型方法.
SendMessage(ScrollBox1.Handle, WM_SETREDRAW, 0, 0);
try
// add controls to scrollbox
// set scrollbox height
finally
SendMessage(ScrollBox1.Handle, WM_SETREDRAW, 1, 0);
RedrawWindow(ScrollBox1.Handle, nil, 0, RDW_ERASE or RDW_INVALIDATE or RDW_FRAME or RDW_ALLCHILDREN);
end;
Run Code Online (Sandbox Code Playgroud)