Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.10;
Скачать: CL | DM;

Вниз

Господа, как отлавливать события изменения значений в таблице?   Найти похожие ветки 

 
Boroda Oleg   (2004-01-31 11:09) [0]

Вопрос то простецкий, но что-то я догадаться никак не могу %((

Имеем таблицу. Получаем из нее SQL, предположим на одну запись. Запихиваем запись в некий редактор, состоящий, предположим из DBEdit, DBDataEdit, DBComboBox (3 штука).

Теперь самое интересное. Как отловить события:
1. Изменение содержания значений в DBEdit сделанные именно пользователем.
2. Изменение содержания значений в DBDataEdit сделанные пользователем, с учетом изменений, вызванных и нажатием на кнопку с календариком.
3. Изменение содержания значений в DBComboBox сделанные пользователем, с учетом изменений, вызванных выбором и из выпадающего меню, а также нажатие на кнопку выпадающего меню.

Событие onChange для соответственных компонент, которое само напрашивается на язык - несколько не подходит, так как оно реагирует на ЛЮБЫЕ изменения в компоненте, даже вызванные занесением данных в компоненту системмой, а этого как раз и не нужно. События onClick также подойти может только для DBEdit, так как не отрабатывается для нажатий на календарь и выпадающее меню, опять же желательно иметь событие после изменения значений в ячейке (не не Post).
Из событий в DataSet - реально можно использовать только onEdit, но она отрабатывается только при переходе таблицы в положение Edit и никак не реагирует на дальнейшие поползновения, пока не скажешь таблице Post.

Что делать то? Пользуюсь на данный момент трехэтажными методами - да и то не всегда все работает как нужно.


 
TUser ©   (2004-01-31 11:47) [1]

Попробуй ловить OnKeyPress и сравнивать значение с предыдущим. Должно помочь.
+ AfterEdit у TDataSet


 
Boroda Oleg   (2004-01-31 15:26) [2]

Немного не то.

OnKeyPress отрабатывает только нажатие на клаве, а если юзер меняет дату из DataSet?

А DataSet отрабатывает только один раз, и после этого ждет Post, независимо к тому, меняю я другие ячейки или нет. Мне же нужно отлавливать события после изменения в каждой ячейке и выполнять некие действия.


 
Boroda Oleg   (2004-01-31 15:29) [3]

Во выразился "а если юзер меняет дату из DataSet" :))

Читать нужно "а если юзер меняет дату мышкой, используя VLB компонента DateEdit?


 
HSolo ©   (2004-01-31 16:10) [4]

А если все-таки в onChange - только обработчик назначать в run-time уже после того, как данные попали куда следует :)) т.е. непосредственно перед тем, как отдать на редактирование пользователю? Или флажок завести и проверять его в обработчике?


 
Boroda Oleg   (2004-01-31 16:45) [5]

Флажком и делаю, только вот лишняя переменная...
Да и выставлять ее нужно не забывать в Create и Deactivate в false, а в Activate в True. Ну и в отладочном режиме, соответственно, абы что - окно же deactivate - считается.


 
HSolo ©   (2004-01-31 16:56) [6]

Много ли занимает один boolean? :))
А насчет "не забывать выставлять" - так сделать общего предка для всех "неких редакторов", в нем один раз выставить и забыть вопрос :)



Страницы: 1 вся ветка

Текущий архив: 2004.02.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
6-29509
dream
2003-12-06 08:13
2004.02.10
Как работать черес прокси используя стандартные компоненты


1-29427
jiurajhgjhgty
2004-01-31 14:10
2004.02.10
Когда несколько видов child form


6-29507
Elik
2003-12-05 10:51
2004.02.10
Как загрузить в IdHTTP вторую половину странички


3-29256
dim-
2004-01-06 16:02
2004.02.10
Перенос dbf в MSSql


6-29505
Rentgen
2003-11-30 07:52
2004.02.10
Скорость