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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2011, 18:52   #1
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию Перехват обработчика OnExit

На модальной форме есть несколько Edit-ов с обработчиками OnExit, в которых контролируются введенные данные и при необходимости выдаются соответствующие сообщения с возвратом фокуса на этот же Edit. Т.е. нельзя выйти из Edit-а, пока не введешь корректные данные. Для выхода без сохранения предусмотрена кнопка TBitBtn, у которой ModalResult=mrCancel и Cancel=True. Проблема начинается когда фокус ввода в Edit с некорректными данными и кликается мышью этот BitBtn. Срабатывает OnExit Edit-а и форма не закрывается. Можно ли перехватить OnExit у Edit-а при кликанье мышью на BitBtn? Вариант с заменой BitBtn на Button не подходит.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.01.2011, 19:04   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Сжальтесь над юзерами, проверяйте корректность ввода по нажатию на OK.
Иначе они будут выходить из вашей модальной формы через Task Manager )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 20.01.2011, 20:03   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
Сжальтесь над юзерами, проверяйте корректность ввода по нажатию на OK.
Иначе они будут выходить из вашей модальной формы через Task Manager )
Это вы зря. Понятное дело, что злоупотреблять нельзя таким контролем, но что делать если в форме обрабатываются близкие по структуре данные, но не полностью? И от вида данных зависит доступность, а зачастую и содержание тех или иных объектов формы. Что прикажете - плодить тучу форм или предбанник делать где задается так или иначе тип объекта. Собственно этот дурацкий предбанник у меня и встроен в эту форму.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.01.2011, 11:39   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вопрос закрыт. Ничего перехватывать не нужно, просто если в Edit.OnExit BitBtn.Focused=True то контроль не делать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выход из обработчика события tools Visual C++ 1 20.12.2010 10:24
Динамическое создание обработчика события tramvajman Компоненты Delphi 8 20.10.2010 10:41
Назначение обработчика события Gypsy Общие вопросы Delphi 2 22.12.2009 09:50
Расположение обработчика onMouseMove() WinApi JavaScript, Ajax 0 19.09.2009 22:45
Организация обработчика OnClick 8alig8 Помощь студентам 1 03.06.2008 05:11