Delphi: 'ShowModal' из немодальной вторичной формы

У нас есть приложение с основной формой и второй немодальной формой, которые можно использовать одновременно. Наша основная форма показывает список конфигураций, а вторая немодальная форма показывает конфигурацию более подробно.

Когда мы показываем модальную форму (запрашиваемую второй немодальной формой), основная форма появляется перед второй формой, пока мы не закроем эту модальную форму.

Как я могу избежать такого поведения? Я уже пробовал создать эту последнюю модальную форму разными способами («Applicaton.CreateForm», «TForm.Create», установка родительского элемента), но все же получил всплывающую главную форму.

Любые идеи?

Заранее спасибо!


person user729103    schedule 15.10.2012    source источник
comment
Как вы обычно создаете свою модальную форму (без использования Applicaton.CreateForm)? Вы пробовали что-то вроде ModalForm := TModalForm.Create(nil); ModalForm.ShowModal;?   -  person TLama    schedule 15.10.2012
comment
установка родителя для модальной формы рискует заморозить ваше приложение   -  person Arioch 'The    schedule 15.10.2012
comment
вы пробовали установить mainform как form2nd.parent?   -  person Arioch 'The    schedule 15.10.2012
comment
PopupParent может быть ответом на ваш вопрос.   -  person iMan Biglari    schedule 15.10.2012
comment
+1, я могу воспроизвести это   -  person whosrdaddy    schedule 15.10.2012
comment
@whosrdaddy, а что, если вы привяжете .Parent второй формы к mainform? а какая это версия delphi?   -  person Arioch 'The    schedule 15.10.2012
comment
@iManBiglari: да, вот и ответ   -  person whosrdaddy    schedule 15.10.2012
comment
@iManBiglari: установка PopupParent работает, как и ответ whosrdaddy   -  person user729103    schedule 15.10.2012
comment
@ user729103: какой из них выбрать, зависит от ваших потребностей ...   -  person whosrdaddy    schedule 15.10.2012


Ответы (1)


Установите Application.ModalPopupMode на pmAuto

Вот что говорится в документации:

TForm.PopupParent

Устанавливает порядок составления форм, который пользователи не могут изменить. Если для свойства PopupMode установлено значение pmExplicit и PopupParent равно нулю, то Application.MainForm неявно используется как PopupParent. Если Application.MainForm не назначен, то Application.Handle используется в качестве PopupParent. Если для свойства PopupMode установлено значение pmAuto, Screen.ActiveForm используется как свойство PopupParent.

person whosrdaddy    schedule 15.10.2012