![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.02.2011
Сообщений: 14
|
![]()
Привет! Ситуация такая. Есть на форме эдит, данные записанные в него в обязательном порядке должны быть сохранены в БД, пока эдит находится в фокусе.
Пока обрабатывается в событии OnChange, но записывать каждый новый введенный символ в базу не эффективно я считаю. Наилучший способ был бы при обработке события OnExit. Но, например, если нажать на кнопку, то сначала обработается событие OnClick кнопки, а затем уже OnExit эдита. До того как наступит событие OnClick кнопки, мы можем легко получить строку в БД в которой надо обновить поле, если произойдет OnClick мы получим уже новую строку и данные потеряются. В общем-то можно использовать глобальную переменную в которой будем хранить ссылку на старую запись в БД, но этот способ меня не особо привлекает. Может у кого-то есть идеи как заставить всегда выполняться сначала OnExit а потом уже всё остальное? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Это смотря какие кнопки. Для SpeedButton так. А для Button и BitBtn сначала OnExit эдита отработает, а потом OnClick кнопки
ADD - забыл добавить для SpeedButton OnExit эдита вообще не отработает, поскольку фокус на эдите и останется
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 29.05.2012 в 23:16. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 19.02.2011
Сообщений: 14
|
![]()
Да, спасибо! Я как раз использовал SpeedButton! Теперь буду использовать обычные кнопки!
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 19.02.2011
Сообщений: 14
|
![]()
А как насчет того, когда фокус переходит с эдита на дерево TreeView?!
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Ставим точки останова в нужных местах и смотрим куда первому управление передается
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 19.02.2011
Сообщений: 14
|
![]() Цитата:
В общем скажу, что у меня конкретно. На форме есть дерево, для каждого узла соответственно есть набор эдитов, в котором редактируются свойства ветки. Поскольку само дерево может хранить только имя фактически, есть так же структура в которую пишутся все данные с эдитов (потот достаются через Data узла дерева). Ну и там между делом все это отправляется в БД. В конкретный момент времени выделен какой-то узел, по которому мы может узнать и структуру и запись в БД, поэтому пока эдит любой в фокусе, можем дублировать с них всё в структуру, а в БД при выходе. Но вот н всегда выход наступает первым. Если наступит OnChange дерева, будет выделен соответственно новый узел, и в OnExit эдита уже будет работать сохранение в БД для нового выделенного... Вот как-то так! |
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Потеря фокуса | Naive | JavaScript, Ajax | 1 | 16.11.2010 05:53 |
Потеря данных | Марина520 | Microsoft Office Word | 0 | 13.06.2010 22:48 |
Потеря значений. С++ | Снежинкина | Помощь студентам | 0 | 27.05.2010 13:03 |
Ошибка при наведении фокуса на Edit | Gumer | Общие вопросы Delphi | 2 | 21.04.2010 00:13 |
Потеря фокуса окна в приложении | Dr.Badnezz | Общие вопросы Delphi | 4 | 01.12.2008 23:18 |