Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Закрыть несколько открытых форм по порядку

25K
25 ноября 2008 года
TheMustafa
33 / / 08.09.2008
Здравствуйте

Наверняка ламерский вопрос, но все же.
Подскажите пжлста как решить след. проблему:
есть программа типа тест, есть начальная форма и конечная, в зависимости от выбора в начале к концу можно прийти разнымим путями(разное кол-во форм).
Так вот, как мне закрыв посленднюю перейти сразу к первой? Как и где хранить всю возможную цепочку пути? Формы открываются как модальные, чтобы случайно не свернули и не потеряли.
Заранее спасибо
288
25 ноября 2008 года
nikitozz
1.2K / / 09.03.2007
Сохраняйте цепочку в любом глобальном массиве или списке. Потом просто закрывайте.
25K
25 ноября 2008 года
TheMustafa
33 / / 08.09.2008
Про массив я тоже сразу подумал. Просто думал может есть еще какой способ.
Спасибо
1.9K
25 ноября 2008 года
GreenRiver
451 / / 20.07.2008
Цитата: TheMustafa
Про массив я тоже сразу подумал. Просто думал может есть еще какой способ.
Спасибо


Можно использовать паттерн "цепочка обязанностей".
http://codelib.ru/pattern/chain_of_responsibility/

1
25 ноября 2008 года
kot_
7.3K / / 20.01.2000
Цитата: TheMustafa
Здравствуйте

Наверняка ламерский вопрос, но все же.
Подскажите пжлста как решить след. проблему:
есть программа типа тест, есть начальная форма и конечная, в зависимости от выбора в начале к концу можно прийти разнымим путями(разное кол-во форм).
Так вот, как мне закрыв посленднюю перейти сразу к первой? Как и где хранить всю возможную цепочку пути? Формы открываются как модальные, чтобы случайно не свернули и не потеряли.
Заранее спасибо


не изобретайте велосипед.
Используйте компонент TabControl или PageControl они как раз и решают необходимые вам задачи.

9.3K
04 декабря 2008 года
iridum
175 / / 26.08.2007
Если нужно закрывать по порядку, можно при создании новых окон указатель на новый обьект окна помещать в std::stack, в таком случае последовательность закрытия гарантируется.

Код:
Form = new TMyForm(Application);

 //заносим в стек
 form_stack.push(Form);

 Answer = Form->ShowModal() == mrOk;

 Form = form_stack.top();

 delete Form;
 Form = NULL;

 form_stack.pop();

 if(!form_stack.empty())
 Form = form_stack.top();


ps. TabControl или PageControl конечно хороши и вообще это последняя тенденция моды, но они не всегда применимы, не бывает универсальных ответов на такие вопросы.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог