О, как раз то, что нужно.
Только, чтоб курсор в DBEdit, сразу после присвоения DBEdit значения из списка, не "уходил" в конец строки, а оставался на той позиции, на которой он стоял до вставки,
нужно:
var
Код:
LPos: integer;
begin
if (ibdsGovEtalon.State in [dsInsert, dsEdit]) then
begin
LPos := length(DBEdit1.Text);
DBLookupComboBox1.ListSource.DataSet.Locate(DBLookupComboBox1.KeyField, DBEdit1.Text,[loPartialKey]);
DBLookupComboBox1.KeyValue := DBLookupComboBox1.ListSource.DataSet.FieldByName(DBLookupComboBox1.KeyField).Value;
if DBLookupComboBox1.KeyValue = DBEdit1.Text then
begin
DBEdit1.SetFocus;
DBEdit1.SelStart := LPos;
DBEdit1.SelLength := 0;
end;
end;