Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.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
Delphi 如何在输入组合框时填充组合框?_Delphi_Combobox_Delphi 7_Vcl_Autofill - Fatal编程技术网

Delphi 如何在输入组合框时填充组合框?

Delphi 如何在输入组合框时填充组合框?,delphi,combobox,delphi-7,vcl,autofill,Delphi,Combobox,Delphi 7,Vcl,Autofill,我试图在您键入TComboBox时完成搜索,并在键入时自动添加项目 我使用Delphi7和MSSQL 假设我有一个长表,表中有一列名为“names”的名称列表,我键入了“Jonathan” 我希望在逐个键入时将结果输入到TComboBox 谢谢。尝试以下方法: procedure TForm1.ComboBox1Change(Sender: TObject); var I: Integer; begin ComboBox1.Items.Clear; ComboBox1.SelStar

我试图在您键入
TComboBox
时完成搜索,并在键入时自动添加项目

我使用Delphi7和MSSQL

假设我有一个长表,表中有一列名为“names”的名称列表,我键入了“Jonathan”

我希望在逐个键入时将结果输入到
TComboBox

谢谢。

尝试以下方法:

procedure TForm1.ComboBox1Change(Sender: TObject);
var
  I: Integer;
begin
  ComboBox1.Items.Clear;
  ComboBox1.SelStart:= Length(ComboBox1.Text); //To put the cursor in the end
                                                 of the string typed in the ComboBox
  if ComboBox1.Text = '' then
    ADOTable1.Filtered:= False
      else
        begin
          ADOTable1.Filter:= 'Names LIKE ' + QuotedStr(ComboBox1.Text + '*');
          ADOTable1.Filtered:= True;
          for I := 1 to ADOTable1.RecordCount do
            begin
              ADOTable1.RecNo:= I;
              ComboBox1.Items.Add(ADOTable1.FieldByName('Names').Value);
            end;
        end;
end;

你看过TDBLookUpComboBox吗?你在哪里打字的?在
t密码框中
?或者键入其他组件并希望ComboBox项填充数据?我在TCombobox更改事件上键入代码,以便用户键入新查询时加载与ComboBox匹配的名称。我的问题是组合框的行为很奇怪,添加到我不需要的现有项目中,或者当我清除这些项目并添加新项目时,它会失去焦点,或者当我键入123时,它会转到321。@StarDust查看我的回答你能用TADO查询组件添加一个示例吗?我会在家里试一试,我会让你知道的。@StarDust你也可以用
TADOQuery
来做同样的事情,谢谢,我修改了你的逻辑,效果不错。然而,当我快速打字时,我会有某种滞后行为,或者当我从中间删除某些内容时,它会回到末尾。在我开始打字并等待半秒后,有没有办法让代码稍微延迟一下?@StarDust,你是说?