![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск при вводе [D6, MySQL]
Vygantas © (2002-08-26 12:04:00)Проблема такая:
Имею DBGrid в котором данные.
Хочу сделать так - я ввожу слово стоя в DBGrid"е, на вверх вываливаеться окно с вводиммым словом, тем временем идет афтоматический поиск.
Так как сделать афтоматический поиск?
billybons (2002-08-26 13:26:00) [1]а я так делал :
procedure TMain_frm.RxDBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
// если набор номера (численного значения)
if ((Ord(key)>=48) and (Ord(key)<=57)) then begin
edit1.Visible:=True;
edit1.SetFocus;
edit1.Text:=key;
edit1.SelStart:=1;
end;
// если набор текста
if (Ord(key)>=192) and (Ord(key)<=255) then begin
edit2.Visible:=True;
edit2.SetFocus;
edit2.Text:=key;
edit2.SelStart:=1;
end;
end;
procedure TMain_frm.Edit1Change(Sender: TObject);
begin
mphone_ds.IndexName:="Phone_";
mphone_ds.FindNearest([Edit4.Text]);
end;
procedure TMain_frm.Edit2Change(Sender: TObject);
begin
phone_ds.IndexName:="Naim_";
phone_ds.FindNearest([Edit2.Text]);
end;
Leran2002 (2002-08-26 12:12:00) [2]Во как я когдато делал (в СтатусБар чем хуже):
procedure TMainFrm.RxDBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
#8: begin
FindS:="";
StatusBar1.Panels[2].Text:="";
exit;
end;
#13: begin
ResumFrm.ShowModal;
exit;
end;
end;
FindS:=FindS+Key;
DM.MainTbl.Locate(RxDBGrid1.SelectedField.FieldName,FindS,[loCaseInsensitive, loPartialKey]);
StatusBar1.Panels[2].Text:="Поисковая строка: "+FindS;
end;