MessageDlg в обработчике OnExitDelphi , Программа и Интерфейс , Диалоги и ФреймыMessageDlg в обработчике OnExitАвтор: OAmiry (Borland) Я пытаюсь использовать MessageDlg в обработчике OnExit компонента TEdit. При показе диалогового окна пользователь нажимает одну из кнопок, после чего, по идее, должно возникнуть событие OnEnter компонента, но оно не возникает! Если вызов диалога сопровождается комментарием, событие OnEnter инициализируется верно. В любом случае, событие OnExit завершает весь код. Фактически (в момент показа диалога), фокус имеет поле редактирование, но курсор при этом не выводится. Передавая фокус "вперед" и снова "назад", вы получите желаемый результат. Например: В обработчике события OnExit поля редактирования после вызова MessageDlg попробуйте вызвать следующие функции:
Вечная борьба с событием Чтобы понять, что происходит здесь, давайте глубже исследуем проблему. Когда событие В вашем случае, поскольку обработчик события Используя Этот workaround обеспечивает правильное установление фокуса после отображения диалога, позволяя событию Если вы заинтересованы в более элегантном решении, вы можете рассмотреть использование метода
Однако, это решение требует знания имени следующего контрола заранее. Решение с В статье обсуждается проблема использования MessageDlg в обработчике OnExit компонента TEdit Borland Delphi, при котором событие OnEnter не возникает после вызова диалогового окна, а вместо этого фокус имеет поле редактирования без вывода курсора. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Диалоги и Фреймы ::
|
|||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |