![]() |
|
|
Регистрация | << Правила форума >> | 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; |