ShowModal из ShowModal

rgreat
Дата: 18.09.2019 18:03:42
Открывают из одной модальной формы другую.

И тут внезапно через пару секунд первая форма вылазит on top. Иногда дольше.
При любом клике вне 1-й формы возвращаюсь на 2-ю форму.

Никаких event-ов и таймеров там нет. Просто диалоги.

Как лечить?
Мимопроходящий
Дата: 18.09.2019 18:08:40

18.09.2019 18:03, rgreat пишет:
> Как лечить?

никак.
сколько существует Delphi, столько и присутствует этот глюк.

Posted via ActualForum NNTP Server 1.5

rgreat
Дата: 18.09.2019 18:11:33
Мимопроходящий,

Неужто причина не нашлась за столько времени?
Мимопроходящий
Дата: 18.09.2019 18:13:45

18.09.2019 18:11, rgreat пишет:
> Неужто причина не нашлась за столько времени?

причина - тупая реализация в Delphi "псевдомодальности" средствами VCL, а не WinAPI

Posted via ActualForum NNTP Server 1.5

rgreat
Дата: 18.09.2019 18:15:43
Мимопроходящий,

Пофиксить ошибку в vcl можно? Или какие костыли прикрутить?
rgreat
Дата: 18.09.2019 18:19:14
Гугль наше все.

Костыль:

ModalForm.PopupParent:=Self;
ModalForm.ShowModal;
edruzenko
Дата: 18.09.2019 21:32:39
rgreat,

а не проще установить PopupMode := pmAuto;

тем более это не костыль, а документированное поведение.
rgreat
Дата: 18.09.2019 21:49:41
edruzenko,

PopupParent надежней.
rgreat
Дата: 18.09.2019 21:51:24
Кроме того "The PopupMode property is automatically set to pmAuto when the ShowModal method is called"

Результат - на лицо.
edruzenko
Дата: 18.09.2019 22:04:49
rgreat,

чем надежней?

Если устанавливаю PopupMode = pmAuto работает без заскоков, не устанавливаю - не работает.
Мой метод удобнее чем твой, потому что можно усnановить на уровне Application.PopupMode