gpt4 book ai didi

delphi - 可以快速打开并装有大量元素的组合盒

转载 作者:行者123 更新时间:2023-12-03 15:39:38 30 4
gpt4 key购买 nike

我有一个源自 DevExpress 的 TdxfCustomComboBox 的自定义组合框。在大多数情况下它工作得非常好......然后我收到了客户的报告,当他们尝试打开它时,弹出窗口需要 3 秒才能出现。经过一番调查后,我发现这是因为他们的数据库有大约 12000 个要填充的项目,并且每次都会重新创建弹出窗口并填充它。

这意味着包含此行的 StdCtrls.TListBoxStrings.Add 被调用 12000 多次,每个字符串一次。

SendMessage(ListBox.Handle, LB_ADDSTRING, 0, Longint(PChar(S)));

处理这一行需要多次遍历多层消息处理程序,这确实会让事情陷入困境。我觉得这很愚蠢,因为无论如何,弹出窗口中实际上一次实际上只显示了大约十几个项目。有谁知道不需要这种预加载并且可以缩放的组合框控件?

编辑:不幸的是,这里不能选择不加载 12,000 个项目。组合框中的项目数基于数据库中的项目数,并且它们都必须可用。也不是把它变成组合框以外的东西。没有足够的屏幕空间。

最佳答案

我能想到的最好的解决方案是使用 TButtonEdit,当您单击按钮时,将弹出一个包含项目的 TVirtualStringTree(速度快如闪电),每当用户单击某个项目时,弹出窗口将关闭并选择项目将显示在 TButtonEdit 的文本属性中——这可以在几分钟内完成(5-10)

关于delphi - 可以快速打开并装有大量元素的组合盒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4513342/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com