procedure TForm3.ComboBox1Change(Sender: TObject);
var
str:string;
begin
str:=combobox1.Text;
with dm.ADOQuery1 do
begin
dm.ADOQuery1.Close;
dm.ADOQuery1.SQL.Clear;
dm.ADOQuery1.SQL.Add('select * from xue where index like '''+'%'+str+'%'+'''');
dm.ADOQuery1.Open;
combobox1.Items.Clear;
end;
while not(dm.ADOQuery1.Eof) do
begin
combobox1.Items.Add(dm.ADOQuery1.Fields[1].AsString);
dm.ADOQuery1.Next ;
end;
end;
每次输入后 光标都会跳到第一列的位置,而且输入的如果是abc,现实的就是cba 请问我的程序问题在那 谢谢
var
str:string;
begin
str:=combobox1.Text;
with dm.ADOQuery1 do
begin
dm.ADOQuery1.Close;
dm.ADOQuery1.SQL.Clear;
dm.ADOQuery1.SQL.Add('select * from xue where index like '''+'%'+str+'%'+'''');
dm.ADOQuery1.Open;
combobox1.Items.Clear;
end;
while not(dm.ADOQuery1.Eof) do
begin
combobox1.Items.Add(dm.ADOQuery1.Fields[1].AsString);
dm.ADOQuery1.Next ;
end;
end;
每次输入后 光标都会跳到第一列的位置,而且输入的如果是abc,现实的就是cba 请问我的程序问题在那 谢谢
写在keydown事件比较好,用户输入完成之后敲回车键再进行数据库查询
n: Integer;
str: String;
begin
n := ComboBox1.SelStart;
str := ComboBox1.Text;
//................
ComboBox1.Text := str;
ComboBox1.SelStart := n;
end;
AStr: string;
begin
AStr := Combobox.text;
Combobox.selstart := lenth(AStr);
end;原理同楼上