Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.02.2012, 19:13
Ashkana Ashkana вне форума
Прохожий
 
Регистрация: 07.02.2012
Сообщения: 4
Репутация: 10
По умолчанию Showmodal и OnClose

Подскажите, пожалуйста.
Дана главная форма ( Form1 ), при определенных условиях пользователю демонстрируется форма Form2, где пользователь должен выбрать настройки. В зависимости от выбранных настроек, появляется или окно Form3 или окно Form4 с дополнительными настройками.
Вопрос вот в чем. Если в событии OnClose формы Form2 вызывается Form3.Showmodal, то Form2 не закроется до тех пор , пока не закроется форма Form3.
Как сделать так чтобы окно Form2 закрывалось до появления Form3?

Спасибо.
Ответить с цитированием
  #2  
Старый 08.02.2012, 19:18
Аватар для Jaggi
Jaggi Jaggi вне форума
Прохожий
 
Регистрация: 08.02.2012
Адрес: Шадринск
Сообщения: 7
Версия Delphi: 7
Репутация: 10
По умолчанию

А не на то ли модальные окошки модальные, чтобы не давать закрывать вызвавшую их форму?
Ответить с цитированием
  #3  
Старый 08.02.2012, 19:25
Ashkana Ashkana вне форума
Прохожий
 
Регистрация: 07.02.2012
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Jaggi
А не на то ли модальные окошки модальные, чтобы не давать закрывать вызвавшую их форму?
Интересный вопрос.
Я был убежден в том, что логика в обратном - не в невозможности закрытия формы, а в том чтобы закончить работу с вызванной. Ну да не важно.
Мне нужно модально вызвать одну форму, чтобы пользователь или выбрал настройки или закрыл ее, и если он выбрал настройки и продолжил, то показывалась еще одна форма с доп. настройками, тоже модально - или выбери опции или закрой.
Можно интерфейсно проще решить, но попросили так.
Спасибо.
Ответить с цитированием
  #4  
Старый 09.02.2012, 00:08
Аватар для Jaggi
Jaggi Jaggi вне форума
Прохожий
 
Регистрация: 08.02.2012
Адрес: Шадринск
Сообщения: 7
Версия Delphi: 7
Репутация: 10
По умолчанию

можно попробовать индусский вариант. по событию onclose выполнить какое-либо незаметное действие на главной форме, а показ формы 3 осуществлять по этому действию.
я так обходил защиту трай.. ексепт - прямо из этой конструкции лейблом выйти нельзя. взял булевскую переменную и после конструкции проверил ее.
прошу прощения за лейблы.
Ответить с цитированием
  #5  
Старый 09.02.2012, 00:48
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

А так пойдет?
Код:
Form2.close;
Form2.hide;
form3.showmodal;
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #6  
Старый 09.02.2012, 08:54
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

так что-ли http://zalil.ru/32671345 ?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 09.02.2012, 10:52
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Вынести код запуска форм в вызывающий метод:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.ShowModal;
  if Form2.ModalResult = mrOk then
     Form3.ShowModal
  else
  if Form2.ModalResult = mrYes then
    Form4.ShowModal
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:07.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025