![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Подскажите, пожалуйста.
Дана главная форма ( Form1 ), при определенных условиях пользователю демонстрируется форма Form2, где пользователь должен выбрать настройки. В зависимости от выбранных настроек, появляется или окно Form3 или окно Form4 с дополнительными настройками. Вопрос вот в чем. Если в событии OnClose формы Form2 вызывается Form3.Showmodal, то Form2 не закроется до тех пор , пока не закроется форма Form3. Как сделать так чтобы окно Form2 закрывалось до появления Form3? Спасибо. |
|
#2
|
||||
|
||||
|
А не на то ли модальные окошки модальные, чтобы не давать закрывать вызвавшую их форму?
|
|
#3
|
|||
|
|||
|
Цитата:
Я был убежден в том, что логика в обратном - не в невозможности закрытия формы, а в том чтобы закончить работу с вызванной. Ну да не важно. Мне нужно модально вызвать одну форму, чтобы пользователь или выбрал настройки или закрыл ее, и если он выбрал настройки и продолжил, то показывалась еще одна форма с доп. настройками, тоже модально - или выбери опции или закрой. Можно интерфейсно проще решить, но попросили так. Спасибо. |
|
#4
|
||||
|
||||
|
можно попробовать индусский вариант. по событию onclose выполнить какое-либо незаметное действие на главной форме, а показ формы 3 осуществлять по этому действию.
я так обходил защиту трай.. ексепт - прямо из этой конструкции лейблом выйти нельзя. взял булевскую переменную и после конструкции проверил ее. прошу прощения за лейблы. |
|
#5
|
||||
|
||||
|
А так пойдет?
Код:
Form2.close; Form2.hide; form3.showmodal; |
|
#6
|
||||
|
||||
|
так что-ли http://zalil.ru/32671345 ?
|
|
#7
|
|||
|
|||
|
Вынести код запуска форм в вызывающий метод:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.ShowModal;
if Form2.ModalResult = mrOk then
Form3.ShowModal
else
if Form2.ModalResult = mrYes then
Form4.ShowModal
end; |