powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ShowModal из ShowModal
16 сообщений из 16, страница 1 из 1
ShowModal из ShowModal
    #39863492
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открывают из одной модальной формы другую.

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

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

Как лечить?
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863498
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
18.09.2019 18:03, rgreat пишет:
> Как лечить?

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

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863501
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Неужто причина не нашлась за столько времени?
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863503
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
18.09.2019 18:11, rgreat пишет:
> Неужто причина не нашлась за столько времени?

причина - тупая реализация в Delphi "псевдомодальности" средствами VCL, а не WinAPI
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863507
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Пофиксить ошибку в vcl можно? Или какие костыли прикрутить?
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863510
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гугль наше все.

Костыль:

Код: pascal
1.
2.
ModalForm.PopupParent:=Self;
ModalForm.ShowModal;
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863595
edruzenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

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

тем более это не костыль, а документированное поведение.
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863601
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edruzenko,

PopupParent надежней.
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863602
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме того "The PopupMode property is automatically set to pmAuto when the ShowModal method is called"

Результат - на лицо.
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863609
edruzenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

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

Если устанавливаю PopupMode = pmAuto работает без заскоков, не устанавливаю - не работает.
Мой метод удобнее чем твой, потому что можно усnановить на уровне Application.PopupMode
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863610
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий18.09.2019 18:03, rgreat пишет:
> Как лечить?

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



Странно, в такой постановке мне не приходилось сталкиваться с таким глюком. Даже когда модальные окна создаются через TMyForm.Create(nil), порядок окон не нарушается (пока не произойдёт подвисания с навешиванием ghost-окна).
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863617
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм..
Код: pascal
1.
2.
3.
4.
procedure TForm1.Button1Click(Sender: TObject);
begin
  TForm1.Create(Self).ShowModal();
end;



все ок.. хоть 20 окон...
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863627
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В citrix бывает ещё веселее. Модальное окно оказывается сзади а форма что спереди остаётся не кликабельной. Вплоть до закрытия приложения из менеджера задач доходит. Как бороться с сим тоже не совсем понятно.
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863639
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edruzenkorgreat,

чем надежней?Тем что Z Order выставлен явно а не с применением некой "авто" логики, которая еще хз как отработает.
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863640
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например если во время создания/открытия формы фокус может внезапно перейти на другое окно и все накроется медным тазом.

Это даже если не учитывать вероятные баги в этом авто-механизме.
...
Рейтинг: 0 / 0
ShowModal из ShowModal
    #39863981
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSerСтранно, в такой постановке мне не приходилось сталкиваться с таким глюком.
Зависит от используемых версий дельфы и подобных факторов.

Mikhail TchervonenkoВплоть до закрытия приложения из менеджера задач доходит. Как бороться с сим тоже не совсем понятно.
На уровне пользователя обычно помогает дважды нажать Alt-Tab. А на уровне приложения - таки PopupParent итп.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ShowModal из ShowModal
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]