скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Поиск в DBGride без ввода искомого значения в поле ввода



Твой Windows свопиться украдкой
На твой заполненый хард драйв
В него тихонько кинь гранаткой
Чтоб больше места он не взял.

Можно обрабатывать событие OnKeyPress компонента DBGrid:


procedure TSubscriber_frm.RxDBGrid1KeyPress(Sender: TObject;
          var Key: Char);
begin
  // если набор номера (численного значения)
  if ((Ord(key)>=48) and (Ord(key)<=57)) or ((Ord(key)>=96) and (Ord(key)<=105)) 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;

А в обработке события OnChange edit1 и edit2 применить ф-цию FindNearest по нужному полю. Прятать edit-ы , после удачного поиска, либо по нажатии пользователем стрелки, Enter-a и т.п.






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook