![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Как устранить проблему с контекстным меню и названием кнопки приложения в Delphi XE4 на Windows XP и Server 2003Delphi , Рабочий стол , TaskBarВ последнее время я обновился до версии XE4 и начал поиск изменений и "фиксов", представленных в версии XE3. Одно из изменений, которое меня удивило, заключается в том, что контекстное меню кнопки на панели задач больше не появляется. Это легко воспроизвести: достаточно создать новый проект FireMonkey в XE4 и запустить его на Windows XP. Если выполнить правый клик по кнопке приложения на панели задач, контекстное меню с пунктами "Закрыть", "Восстановить", "Свернуть" и т.д. не появится. Проблема касается только Windows XP и Server 2003, в то время как в Windows 7 контекстное меню отображается корректно. Кроме того, название кнопки приложения теперь не соответствует ожидаемому. Оно должно отображать название основной формы "Form 1", но вместо этого отображается "Project1" - название исполняемого файла. Это происходит во всех версиях Windows. Причина проблемыПроблема связана с изменением структуры окон приложений в Delphi XE4. В предыдущих версиях окно основной формы размещалось на панели задач и имело соответствующее название и контекстное меню. В XE4 приложение создает новое окно с классом "TFMAppClass" и использует его в качестве главного окна приложения, которое размещается на панели задач. Окно основной формы является его "соседом". Это приводит к тому, что невозможно установить название кнопки на панели задач, отсутствует контекстное меню, приложение не реагирует на клики по кнопке и не скрывается, когда основная форма скрыта. Решение проблемыЧтобы решить проблему, необходимо скрыть окно приложения с панели задач и показать окно основной формы. Это нужно сделать один раз, но поскольку стиль окна приложения сбрасывается каждый раз при минимизации/восстановлении, окно вновь появляется на панели задач. Для скрытия окна приложения используйте функцию Эти действия выполняются с помощью хука, который перехватывает сообщения
Этот код основан на двух примерах из интернета. Авторы этих примеров не указаны, но им выражается благодарность за идею. Остаточная проблемаСуществует одна нерешенная проблема: при первом минимизации приложения кнопка окна приложения временно появляется на панели задач, вместо кнопки формы. После восстановления или повторного минимизации этого больше не происходит. ВыводПроблема с контекстным меню и названием кнопки приложения в Delphi XE4 на Windows XP и Server 2003 связана с изменением структуры окон приложений. Представленный выше код позволяет скрыть окно приложения и показать окно основной формы на панели задач, тем самым устраняя проблему. Пользователь столкнулся с проблемой в Delphi XE4, связанной с отсутствием контекстного меню и неправильным отображением названия кнопки приложения на панели задач в Windows XP и Server 2003, и ищет способ её решения. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |