C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Переоткрыть окно как модальное
Deem
Отправлено: 31.08.2005, 11:42


Мастер участка

Группа: Участник
Сообщений: 327



Задача: в некотором диалоге вызывается кнопкой форма ShowModal(). Эта форма может быть открыта уже методом Show().
Перед открытием формы из диалога я ее Close(), а потом ShowModal().

Она выходит наверх и приложение умирает, что-то с обработкой событий (думается). Ставили задержку между Close И ShowModal  — цикл с обработкой событий, думали, надо время на закрытие окна.
Еще вместо Close делали Visible = false. Все одно. Что посоветуете?
olegenty
Отправлено: 31.08.2005, 12:04


Ветеран

Группа: Модератор
Сообщений: 2412



Close() перед открытием диалога, с сохранением состояния до его открытия. потом всё как всегда, ShowModal(), а после закрытия диалога — восстановлене состояния.
Gedeon
Отправлено: 31.08.2005, 12:15


Ветеран

Группа: Модератор
Сообщений: 1742



Специально проверил у себя на 2 формах, то, что ты написал работает без нареканий, ищи у себя в коде что-то происходит.

PS Попробовал с тремя формами т.е. из 1 создали 2 и 3, а потом из 3 переоткрыли 2, все ОК.

Отредактировано Gedeon — 31/08/2005, 12:22
Deem
Отправлено: 01.09.2005, 09:19


Мастер участка

Группа: Участник
Сообщений: 327



to olegenty

Ну, я так и думал, пока не проверял. Может будет тоже самое. А про параметры: как восстановить положение окна под другими окнами? smile.gif

to Gedeon

У меня есть куча всякого в OnShow и OnHide. Соотв. у тебя ситуация не смоделирована полностью.

Я спросил, думал есть какие-то стандартные ситуации и их решение. smile.gif
Ладно, спасибо, буду рыться в коде.
Deem
Отправлено: 01.09.2005, 10:00


Мастер участка

Группа: Участник
Сообщений: 327



Решили. Окно FormStyle = fsStayOnTop. Такое окно по ShowModal иногда глючит, а иногда работает. У меня больше работало. Но попалась ситуация, когда отказалось.

Короче, после Close делаю FormStyle = fsNormal. Тогда по ShowModal все отлично. После закрытия диалога проблемной форме возвращаю StayOnTop.

Файтически,вариант olegenty. smile.gif

Вернуться в Вопросы программирования в C++Builder