Delphi将项目添加到ComboBox速度
发布时间:2020-12-15 03:51:34 所属栏目:大数据 来源:网络整理
导读:我有一个相当复杂和庞大的应用程序,负载和数据负载.是否有一种快速的方法来向ComboBox添加不需要这么长时间的项目?在我的P3 3.2ghz上,以下片段只需不到一秒钟即可添加大约32,000个项目. (MasterCIList是一个StringList,字符串通常为20-30个字节长). with Lo
我有一个相当复杂和庞大的应用程序,负载和数据负载.是否有一种快速的方法来向ComboBox添加不需要这么长时间的项目?在我的P3 3.2ghz上,以下片段只需不到一秒钟即可添加大约32,000个项目. (MasterCIList是一个StringList,字符串通常为20-30个字节长).
with LookupComboBox do begin Items.BeginUpdate; Items.Clear; for i := 0 to MasterCIList.Count - 1 do Items.Add(MasterCIList[i]); Items.EndUpdate; end; 向下钻入VCL,看来在TComboBoxStrings.Add中有一个调用 Result := SendMessage(ComboBox.Handle,CB_ADDSTRING,Longint(PChar(S))); 我猜这真的占用了时间(好吧,我知道它是).是否有另一种方法来填充更快速的项目?有没有高速组合盒?我有TMS组件,但它们似乎是TComboBox的扩展. 例如,我有PlusMemo,似乎是对TMemo的完全重写.我可以在一秒钟内轻松地向PlusMemo添加一百万行.一个TMemo,我不这么认为. 非常感谢您的参与! 解决方法
对不起,如果我是一个讨厌的人,但我怀疑一个拥有32,000项的TComboBox甚至可以远程“使用” – 我会说它有一个原因,因为它很慢:它从来没有打算这样做:)
是否有可能过滤数据,只加载一个子集?更具体地说,在我一直在研究的一个特定数据库应用程序中,用户可以搜索一个人.我们让用户输入至少3或4个字符的名称,然后才开始在列表框中返回结果.这极大地提高了搜索表单的可用性,也大大加快了整个过程. 你能按照类似的方法吗? 或者,在完全不同的情况下,也许您可??以看一下VirtualTreeView组件—直接使用或灵感. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |