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,你是说?