Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2007, 13:49   #1
Repz
Пользователь
 
Регистрация: 10.08.2007
Сообщений: 13
По умолчанию События для DBGrid

Господа, необходимо решить задачу:
Имеется база база данных (interbase), доступ к ней организован с помощью IBQuery, на форме имеется RadioGroup, при выборе какого-то условия фильтрования, в DBGrid выводится результаты. Для навигации по этим данным я использовал событие OnCellClick которое содержит процедуру для переноса содержимого поля посредством dbgrid1.Fields[i] в edit1 и там с ним происходит редактирование.
Но кроме фильтров у меня также имеется edit2 для ввода и поиска уникального (единственного) значения, и необходимо что бы это найденное значение сразу заносилось в edit1, т.е необходимо как-то имитировать событие OnCellClick.
Пробовал вариант: после ввода значения в edit2 делал dbgrid.setfocus, а в dbgrid прописывал событие OnEnter, по этому событию вызывается процедура полностью скопированная из DBGrid1CellClick. При таком варианте событие OnEnter работает прекрасно, но OnCellClick никак не реагирует на щелчки, видимо эти два события как то конфликтуют между собой, потому что убираю OnEnter,OnCellClick работает.
Спасибо за то, что дочитали до конца.
Repz вне форума Ответить с цитированием
Старый 10.08.2007, 14:31   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Вообще, я все делаю по-другому... Правда, не в interbase, но какая разница?
Вытаскиваешь нужное с помощью Query
Код:
Query.SQL.Add('select ПОЛЯ from ТАБЛИЦА where ... {здесь твой фильтр}')
Вместо Edit1 положи DBEdit1 и свяжи его по нужному полю.
Далее, вытаскиваем уникальное значение
Код:
QueryTemp.SQL.Add('select distinct ПОЛЕ from ТАБЛИЦА where....= ЧЕМУ_ТО_ТАМ...
Edit2.text:=QueryTemp.Fields[0].AsString;
Но это значение будет одно, если оно одно в таблице... Иначе их выскочит несколько... Тут, уж я не знаю как там у тебя...
После редактирования DBEdit1
Код:
With Table do
edit;
post;
end;
А вывод инфы из таблицы обычно делают не OnCellClick грида, а OnAfterScroll таблицы.

Последний раз редактировалось _SERGEYX_; 10.08.2007 в 14:36.
_SERGEYX_ вне форума Ответить с цитированием
Старый 10.08.2007, 14:48   #3
Repz
Пользователь
 
Регистрация: 10.08.2007
Сообщений: 13
По умолчанию

_SERGEYX_ Спасибо за ответ, но хотелось бы обойтись без Table'ов.
Repz вне форума Ответить с цитированием
Старый 11.08.2007, 09:37   #4
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Цитата:
Сообщение от Repz Посмотреть сообщение
_SERGEYX_ Спасибо за ответ, но хотелось бы обойтись без Table'ов.
а Серж не Table предлагает, а Query
Вы ж с базой работаете,, без этих компонентов никак....
Если Вас напрягают запросы, то используйте конструкцию SetKey... Gotokey, lookup(),locate или GoToNearest()... Но запросы как-бы посалиднее...
Если Вам нужно в edit2 уникальное значение, то может создать secondare key (чтобы избежать повторения значений)? Ну , а если и такой вариант не катит, то может вместо Edit1 использовать DBComboBox или DBlistBox? Если при поиске нашлось несколько значений, то заносить их в items... Поумолчанию устанавливаем Text равный первому найденному значению....
Ну а потом пользователь выбирает нужное ему значение... Либо оставляет то, что поумолчанию
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
События для DBGrid Максим_Леонидович Компоненты Delphi 1 08.08.2008 22:43
Код для события. Delphi 7. tlsol Компоненты Delphi 9 11.04.2008 15:02
Перехват события juden Общие вопросы Delphi 5 23.05.2007 12:21
Обработчик события... Flash_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 12.03.2007 21:24
Назначение события EA_Sports Общие вопросы Delphi 2 11.03.2007 00:45