Delphi搜索编辑组件

4
我需要一个适用于Delphi 2007 win32的Delphi组件,其功能类似于Google搜索文本框。
当用户输入搜索关键字时,它应该填充/刷新列表中的值,并且用户可以选择其中一个。
用户可以上下移动列表并选择其中一个。
列表应包含代码和文本对,因此用户可以选择文本,我可以获取代码以进行数据库操作。
(Google可以在列表中突出显示搜索文本,但我认为这在Delphi 2007中不可能,因此不需要。)
我尝试了Dev Express TcxMRUEdit,但它不符合我的需求。

复制,看一下这个链接: https://dev59.com/GHI-5IYBdhLWcg3wHUdB - user219760
3个回答

2

既然您使用了DevExpress,为什么不尝试在lsEditMode下使用ImmediateDropDown = True的cxLookupComboBox呢?


1

看看woll2woll组件。自Delphi 3(或更早版本)以来,TLookupcombobox就已经实现了这个功能。这不是垃圾邮件,我只是使用这个库。

http://www.woll2woll.com/


0

我也遇到了同样的问题,不幸的是没有找到一个合适的组件。我也从谷歌上得到了启发。

于是我决定通过使用一个编辑框和一个放在其下方的网格来“模拟一个组件”。当用户在编辑框中输入内容时,查询会刷新并在网格中显示相应的结果。我的网格有很多列,查询结果会尝试匹配所有字段(所以如果我输入'po',查询将返回所有字段中包含'po%'的记录)。我还添加了一个500毫秒的延迟,以防止运行太多不必要的查询(另一种方法是在用户按下新键时终止线程,如果查询在一个线程中运行)。

通过这种方式,我获得了所需的功能,尽管没有突出显示搜索文本,但我的用户对此非常满意。

在每个使用这个“组件”的地方,我都在运行时附加了一个查询,这样它可以在许多不同的表单中使用。

我在某种程度上也受到了Skype用户界面的启发:当你显示联系人列表时,你可以输入一些内容,联系人将根据输入进行过滤(Skype使用的是一个编辑框+网格/列表框)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接