C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Изменение данных в EhControl
** Nick
Отправлено: 22.11.2005, 15:24


Не зарегистрирован







в компонентах EhLib и других есть событие OnChange
но оно вызывается при любом действии таком как нажатие клавиатуры или скролинг выпадающего списка
т.е. если поставить обработчик который на любое изменение делает какие либо "тяжелые" работы то начнуться заметные тормоза.

есть ли какой либо метод который вызывается когда пользователь наконец-то ввел данные (наконецто меняется Value) и нужно это дело обработать.

Можно конечно обработать нажатие Enter или выход из поля но это мне каж недостаточно.

Для примера:
Есть два справочника, второй подчинен первому.

на форме два DBLookupComboBoxEh

при изменении данных в первом поле
перестраивается List второго DBLookupComboBoxEh

если перестраивать его при каждом чихе в первом
будет "круто" при маленьких справочниках и
"глючно" при больших

Guest
Отправлено: 22.11.2005, 15:26


Не зарегистрирован








еще ...

в моем варианте EhLib компоненты используются не как DataAware
поэтому события измения полей не подходят
avc*
Отправлено: 22.11.2005, 15:58


Не зарегистрирован







Мне хватает анализа при OnExit
Guest
Отправлено: 22.11.2005, 16:44


Не зарегистрирован







хм
а как определить изменилось ли значение

потому как если изменилось то нужно менять Value у подлиненного лукапа если нет то лучше оставить как есть
Guest
Отправлено: 22.11.2005, 17:32


Не зарегистрирован







Есть у EhLib такое OnUpdateData проглядел

только оно не проверяет изменилось Value или нет
можно конечно делать снимок
но может уже есть такая возможность нужно определить изменилось ли Value
AVC
Отправлено: 23.11.2005, 11:56


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

а как определить изменилось ли значение

OnKeyDown / Press — если было нажатие алфавитноцифровой (+del+BS) клавиши считаю, что редактирование было. В более критической ситуации (типа вашего примера) запоминаю значений перед входом в редактор и сравниваю после выхода.

Вернуться в Вопросы программирования в C++Builder