Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ComboEdit-如何在弹出事件上刷新项目?_Android_Delphi_Popup_Firemonkey - Fatal编程技术网

Android ComboEdit-如何在弹出事件上刷新项目?

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

我对Android上的ComboEdit有问题。我需要将项目添加到ComboEdit。OnPopup事件中的项目,但我的项目在第二次显示弹出窗口后可见。如何在OnPopup事件中刷新项目

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
项中,速度不会这么慢。