Решение проблемы с ускорением пробела в приложении на DelphiDelphi , Программа и Интерфейс , Модальные формыПроблема: В приложении на Delphi открывается немодальная форма из основной формы, на которой находится TMemo. В меню основной формы используется "пробел" как ускоритель. При вводе пробела в TMemo на немодальной форме срабатывает событие ускорителя на основной форме, что нежелательно. Попытка установить MainForm.KeyPreview := false не решает проблему. Решение: Отключать и включать пункт меню на основной форме при получении и потере фокуса TMemo на немодальной форме. Это можно сделать в событиях TMemo.OnEnter и TMemo.OnExit.
Примечание: Использование Application.MainForm и приведение типов предотвращает жесткую привязку к имени переменной формы в дочерней форме. Альтернативное решение: Установить обработчик TMemo.OnShortCut и перехватить ускорение до того, как оно дойдет до основной формы.
Примечание: Это решение может не подойти, если в немодальной форме есть свои ускорения. Другое альтернативное решение: Создать функцию для чтения, сохранения и восстановления всех ускорений в основной форме в методах FormActivate() и FormDeactivate().
Примечание: Это решение может быть сложным, если у вас много пунктов меню или контролов. Контекст: В приложении на Delphi, при вводе пробела в TMemo на немодальной форме срабатывает событие ускорителя на основной форме, что нежелательно. Необходимо найти решение, чтобы предотвратить это поведение. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Модальные формы ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |