如何在输入时填充 ComboBox?
How to fill ComboBox while you are typing in it?
我正在尝试在您输入 TComboBox
时完成搜索,并在我输入时自动添加项目。
我使用 Delphi 7 和 MSSQL。
假设我有一个很长的 table,名称列表在 table 中,其中一列名为 '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;
我正在尝试在您输入 TComboBox
时完成搜索,并在我输入时自动添加项目。
我使用 Delphi 7 和 MSSQL。
假设我有一个很长的 table,名称列表在 table 中,其中一列名为 '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;