![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Восстановление активной формы после закрытия в FireMonkey: устранение проблемы переключения формDelphi , Программа и Интерфейс , ФормыРазработка приложений с использованием FireMonkey в среде Delphi может сопровождаться различными проблемами, одной из которых является неправильное восстановление активной формы после её закрытия. В данной статье мы рассмотрим, как решается проблема с переключением форм, когда приложение не запоминает последнюю активную форму и активирует не ту, которая ожидается пользователем. Описание проблемыПользователи столкнулись с ситуацией, когда при последовательном открытии форм в FireMonkey, приложение не сохраняет информацию о последней активной форме. После закрытия формы активируется не та форма, которая была открыта до неё, а основная форма (MainForm). Это приводит к неудобствам в использовании и потере логической последовательности переключения форм. Пример воспроизведения проблемыСоздаём три формы: основную (MainForm) и две дочерние формы (ChildForm1 и ChildForm2), где вторая форма является родительской для третьей. Открываем первую дочернюю форму из основной формы. В первой дочерней форме есть кнопка, которая открывает вторую дочернюю форму. При закрытии второй формы активируется основная форма, а не первая дочерняя, как ожидается. При повторном закрытии второй формы активируется первая, но при следующих действиях порядок активации форм продолжает изменяться некорректно. Код для открытия форм
Подтверждённый ответВ версии Delphi XE7 и XE7 Update 1 была обнаружена ошибка в функции Для решения проблемы в версии XE7 можно скопировать функцию
Альтернативное решениеВ случае использования Delphi FMX Berlin, если у вас есть SDI-приложение с скрытой "реальной" главной формой и одной или несколькими рабочими формами, и при этом при закрытии модального диалога фокус переключается на другую форму, решение может быть следующим:
Эти решения помогут устранить проблему с неправильным восстановлением активной формы после её закрытия в приложениях, созданных с использованием FireMonkey. Проблема заключается в том, что в приложении на FireMonkey после закрытия формы не активируется предыдущая форма, а восстанавливается основная форма, что нарушает логику переключения форм. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |