导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2022/5/23 10:19:36
标题:
combobox自定义控件模糊查找的问题
浏览:1045
加入我的收藏
楼主:
问题:在combobox文本框中输入其中某项的第一位数据时,一下拉它会自动补充完整 我是在封装一个下拉框模糊查找的功能,文本框输入一个字符时,我就自动过滤再自动下拉,这样就和上面的问题有冲突,当输入第一个字符时,一下拉,文本下拉框架中就默认选中了这条数据并填充到文本框中。
----------------------------------------------
-
作者:
janker (janker)
★☆☆☆☆
-
盒子活跃会员
2022/5/23 21:25:25
2楼:
TComboBox 好像不适合实现AutoComplete功能,总是有矛盾的地方。 在FMX框架下,倒是用TEdit和TComboEdit可以实现AutoComplete,stackoverflow上有个实现了TEdit的AutoComplete功能的代码,主要是利用了OnPresentationNameChoosing事件用自己的PresentView来替代了默认的View,这样也不用写新的控件了。TComboEdit和TEdit一样。 TMS FMX UI Pack的TEdit也有此功能。
----------------------------------------------
-
作者:
2022/5/24 2:05:07
3楼:
in FMX you can do this way: implementation uses FMX.Edit.Autocomplete, // <---- System.Rtti; {$R *.fmx} procedure TForm1.Edit1ApplyStyleLookup(Sender: TObject); var SuggestionList: TArray<string>; begin SuggestionList := ['Apple', 'Arc', 'Auto', 'Ask', 'Allday', 'Alltime', 'Orange', 'Pineapple']; Edit1.Model.Data['suggestion_list'] := TValue.From < TArray < string >> (SuggestionList); end; procedure TForm1.Edit1PresentationNameChoosing(Sender: TObject; var PresenterName: string); begin PresenterName := 'AutocompleteEdit-style'; end;
----------------------------------------------
The higher the degree, the greater the respect given to the humblest!RAD 11.3
作者:
2022/5/24 16:12:14
4楼:
Edit1.Model.Data['suggestion_list'] := TValue.From < TArray < string >> (SuggestionList); ---看天书,太牛了
----------------------------------------------
-
作者:
2022/5/24 16:28:39
5楼:
好的,谢谢各位回复。
----------------------------------------------
-
作者:
2022/5/24 16:36:25
6楼:
下拉框先下拉后,再输入,就不会有这个问题,可以重载KeyPress方法,让它先下拉。
----------------------------------------------
-