Android ComboEdit-如何在弹出事件上刷新项目?
我对Android上的ComboEdit有问题。我需要将项目添加到ComboEdit。OnPopup事件中的项目,但我的项目在第二次显示弹出窗口后可见。如何在OnPopup事件中刷新项目Android ComboEdit-如何在弹出事件上刷新项目?,android,delphi,popup,firemonkey,Android,Delphi,Popup,Firemonkey,我对Android上的ComboEdit有问题。我需要将项目添加到ComboEdit。OnPopup事件中的项目,但我的项目在第二次显示弹出窗口后可见。如何在OnPopup事件中刷新项目 procedure TForm1.ComboEditPopup(Sender: TObject); begin ComboEdit1.Items.Add('MyItem'); // this item will by visible at next popup end; 我想要达到的目标: 项目:“A
procedure TForm1.ComboEditPopup(Sender: TObject);
begin
ComboEdit1.Items.Add('MyItem'); // this item will by visible at next popup
end;
我想要达到的目标:
项目:“Aaa”、“Bla”、“Ble”、“Dee”。
用户写入“Bl”。当他按下弹出窗口时,ComboEdit将向他显示项目:“Bla”、“Ble”
我的当前代码:
ComboEdit : TComboEdit;
Items : TStringList; // around 1000 strings
procedure TForm1.ComboEdit1Typing(Sender: TObject);
var
i : integer;
begin
ComboEdit.BeginUpdate;
ComboEdit.Items.Clear;
for i := 0 to Items.Count-1 do
if AnsiStartsText(ComboEdit.Text,Items[i]) then
ComboEdit.Items.Add(Items[i]);
Items.EndUpdate;
end;
@汤姆布伦伯格,我在输入第一个字符后尝试搜索。我打字时不这么做,因为太慢了。对不起,我的英语太差了。如果用户按Popup,ComboEdit将仅显示以ComboEdit.Text开头的项目。
OnPopup()
事件太晚,无法修改项目列表。但是您可以使用OnTyping()
事件根据用户正在键入的内容修改项目列表。不过,您需要将完整列表存储在其他地方。这样,当用户按下弹出窗口时,列表已经被过滤了。我知道,但如果列表中有大约1000个项目,搜索速度会很慢。所以,我必须做它否则。谢谢:)如果你说速度太慢,我相信你做错了。但是,如果没有看到你的相关代码,我可能错了。遍历一个包含1000个字符串的数组并将其中一些字符串添加到ComboEdit
项中的速度不会太慢。@TomBrunberg,我在输入第一个字符后尝试搜索。我打字时不这么做,因为太慢了。对不起,我的英语太差了。如果用户按Popup,ComboEdit将仅显示以ComboEdit.Text开头的项目。OnPopup()
事件太晚,无法修改项目列表。但是您可以使用OnTyping()
事件根据用户正在键入的内容修改项目列表。不过,您需要将完整列表存储在其他地方。这样,当用户按下弹出窗口时,列表已经被过滤了。我知道,但如果列表中有大约1000个项目,搜索速度会很慢。所以,我必须做它否则。谢谢:)如果你说速度太慢,我相信你做错了。但是,如果没有看到你的相关代码,我可能错了。遍历一个包含1000个字符串的数组并将其中的一些字符串添加到ComboEdit
项中,速度不会这么慢。