![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как закрыть все окна приложения? [D6, WinXP]
Mars © (2005-05-31 11:22:00)Может сообщение какое есть?
Anatoly Podgoretsky (2005-05-31 14:56:00) [1]Вообще то приложение четко знает сколько у него создано форм. Насчет окон конечно не знает.
KilkennyCat (2005-05-31 14:34:00) [2]В общем, смысл следующий: приложение вообще не знает сколько у него окон. Безответственное приложение :)
Юрий Зотов (2005-05-31 14:31:00) [3]> and(Application.Components[n].Name <> 'ОСНОВНАЯ_ФОРМА')
Это шедевр.
Digitman (2005-05-31 14:16:00) [4]
> Mars (31.05.05 14:13) [20]
объект-компонент-форма не обязан иметь владельцем объект Application
Mars (2005-05-31 14:13:00) [5]ну че вы с пустого в порожнее переливаете?
все получилось!
хотите обсудить, вот вам процедура:
for n:=0 to Application.ComponentCount-1
do begin
if (Application.Components[n] is TForm)
and(Application.Components[n].Name <> 'ОСНОВНАЯ_ФОРМА')
and((Application.Components[n] as TForm).Visible)
then (Application.Components[n] as TForm).Close;
end;
Digitman (2005-05-31 14:03:00) [6]
> злобная танька (31.05.05 13:59) [17]
в том что главное окно создается объектом Application еще ДО создания главной формы (если она вообще есть), это окно невизуальное, не имеет никакого отношения к главной форме и создается всегдав ходе создания объекта Application (при IsLibrary = False), ВНЕ зависимости от того, есть ли хотя бы одна форма в приложении или нет ни одной.
Anatoly Podgoretsky (2005-05-31 13:59:00) [7]Вообще то автор просил все окна приложения, это включает в себя и главное окно приложения.
злобная танька (2005-05-31 13:59:00) [8]
> Digitman © (31.05.05 13:51) [16]
гм, я вот тоже не вижу. наверное поэтому мы поняли друг друга. а в чем она, разница-то?
Digitman (2005-05-31 13:51:00) [9]
> злобная танька (31.05.05 12:57) [11]
> я вас не вполне понимаю, но как просил автор
автор просил "чтобы осталось только главное окно" (см.[5])
MainForm же не есть "главное окно".
а то что автор не видит разницы между "главным окном приложения" и "основной формой" - это его личная драма)
Просто Джо (2005-05-31 13:39:00) [10]
> [14] KilkennyCat © (31.05.05 13:27)
> а у меня пишет, что MainForm несуществует :(
Уметь надо (ц) :))
KilkennyCat (2005-05-31 13:27:00) [11]а у меня пишет, что MainForm несуществует :(
злобная танька (2005-05-31 13:03:00) [12]пожабо! :D
Mars (2005-05-31 12:58:00) [13]>>злобная танька (31.05.05 12:48) [7]
>>прогони в цикле Application.Components.
>>Если is TForm и <> MainForm тады закрывай!
Спасибо! Получилось.
злобная танька (2005-05-31 12:57:00) [14]> Digitman © (31.05.05 12:50) [9]
я вас не вполне понимаю, но как просил автор,
> надо чтобы
> главная форма осталась
вот я и тово..
Anatoly Podgoretsky (2005-05-31 12:54:00) [15]Mars (31.05.05 11:45) [3]
Что просил, то и получил. Отсюда вывод просить нужно только нужное.
Digitman (2005-05-31 12:50:00) [16]
> злобная танька (31.05.05 12:48) [7]
> и <> MainForm
и чем MainForm провинилась ?
она что, не имеет окна по-твоему ?
Digitman (2005-05-31 12:49:00) [17]
> чтобы осталось только главное окно
как только найдешь четкое определение "главного окна" - сразу все вопросы отпадут
злобная танька (2005-05-31 12:48:00) [18]прогони в цикле Application.Components.
Если is TForm и <> MainForm тады закрывай!
Игорь Шевченко (2005-05-31 12:43:00) [19]
> Так есть какое нибудь сообщение для этих целей,
> чтобы осталось только главное окно?
Нету.
Mars (2005-05-31 12:40:00) [20]>>Игорь Шевченко
...так ведь спрашивал, как закрыть окна, а не приложние
Так есть какое нибудь сообщение для этих целей,
чтобы осталось только главное окно?