Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в DBGrid "поймать" событие OnExit ячейки? [D6, XP]


Abcdef123 ©   (2007-04-01 18:28:00) 

Здравствуйте, Мастера!
В работе с компонентом DBGrid я пока не знаю, как работать с элементом "ячейка", то есть, к примеру, как определить введенное значение в интересующий столбец, к примеру, чтобы проводить дальнейший анализ.
Задача такая: Надо в столбце 1анализировать каждый раз введенное значение (провожу через функцию), и если значение входит в промежуток допустимых значений, то в столбце 2надо проанализировать значение, если там уже стоит "Создать ордер", то, надо значение этого столбца занулить, то есть присвоить пустую строку. Но, при этом, чтобы все же для пользователя оставалась возможность из выпадающего списка в Столбце 2вручную снова выбрать и сохранить значение "Создать ордер", если пользователь того захочет. А в случае, если значение Столбца 1выходит за пределы допустимых значений, то в этой ситуации не надо ничего предпринимать со значением столбца 2.
Как я написала в теме сообщения, я подумала, что хорошо бы проводить этот анализ на момент, когда курсор покидает ячейку Столбца1, но я не нашла в DBGrid событие OnExit у ячейки.
P.S. Для точности должна сказать я работаю не со стандартным DBGrid, а dxDBGrid, что является потомком DBGrid, но даже и тут я не нашла, как реализовать мою задачку.
Если нельзя придумать насчет события OnExit, то меня бы в крайнем случае, даже устроило проводить данный анализ на уровне сохранения всей записи (по кнопке на форме). Помогите, пожалуйста :-\


Abcdef123   (2007-04-02 05:17:00) [1]

Я прошу прощения, что ввела в заблуждение всех (сама пребывала в заблуждении до тех пор, пока не получила ваши ответы). Как оказалось, компонент dxDBGrid, с которым я имею дело не является потомком стандартного DBGrid :-(((( Я попотылась найти событие OnColExit, как вы подсказали, но не нашла, и тогда я посмотрела иерархию предков моего dxDBGrid, оказалось, что родитель этого является TCustomdxDBGrid, у которого родитель TCustomdxDBTreeListControl, далее TCustomdxTreeListControl, ..., TCustomdxContainer, а уж стандартный предок-компонент TCustomControl. Так что на наследие событий и свойств от обычного грида тут расчитывать не приходится :-(((
и вопрос уже правильно поставить надо - кто знаком с компонентом dxDBGrid и как мне решить вышеописанную проблему.
А вот насчет анализа по событию Dataset.BeforePost (тут есть такое событие), но я не знаю, как это сделать, ведь мне надо суметь считать предыдущее значение Столбца2 и знать, то ли пользователь выбрал вручную значение "Создать ордер" и в данном случае стирать это значение не надо, то ли это старое значение и при анализе Столбца1 уже решать стирать(занулять) значение Столбца2 или нет.


MsGuns   (2007-04-01 21:26:00) [2]

OnExit - это событие грида, при котором фокус уходит с него ВООБЩЕ.
Для "чувствительности" перехода между полями одной записи (ячейками строки, выражаясь терминологиея Экселя) служат события OnColEnter/OnColExit, а между строками - события датасета (Before/AfterPost-Delete-insert + AfrerScroll)


Германн   (2007-04-01 19:22:00) [3]

А  OnColExit не подходит?


Desdechado   (2007-04-01 19:06:00) [4]

> проводить данный анализ на уровне сохранения всей записи
Dataset.PeforePost


Наверх

Титульная страница Поиск, карта сайта Написать письмо