Форум: "Основная";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
Вниззакрытие MDI Форм Найти похожие ветки
← →
_dimka © (2005-11-25 12:32) [0]есть mdi приложение, нужно сделать вот что:
нажимаю на кнопку на форме1(mdichild) появляеться форма2(mdichild), соответственноь таких форм может быть много, но как сделать так что-бы при закрытии формы1 закрывались формы2 которые я вызвал с этой формы?
в голову пришло 2 варианта:
1) использовать свойство Tag, при создании формы1 устанавливать уникальное значение в Tag при создании формы2 присваиваем ей свойству Tag такое же значение
2) создавать форму2 так TForm3.Create(Form1.ActiveMDIChild);
как лучше поступить?
заранее спасибо
← →
msguns © (2005-11-25 12:45) [1]Какое-то непонятное у тебя MDI ;)
По идее "папа" у всех "дочек" должен быть один (MDIForm) и "дочки" равноправны между собою (MDIChild). Вызов очередной "дочки" должен выполняться "папой", а не другой "дочкой". Если же функционал требует создавать новую "дочь" из уже существующей, то существующая должна обратиться к "папе" с "просьбой сделать это "за нее".
Формы же, вызываемые непосредственно из "дочек", должны быть не MDI и обычно вызываются модально.
← →
_dimka © (2005-11-25 13:05) [2]
> Формы же, вызываемые непосредственно из "дочек", должны
> быть не MDI и обычно вызываются модально.
ну почему же?
← →
Суслик © (2005-11-25 13:08) [3]допустим форма А создает формЫ Б.
1. В классе Б в обработчике OnClose пишешь Action := caFree;
2. При создании формы Б из формы А вызываешь у нее FreeNotification передавая ей self (т.е. форму А)
3. В форме А запоминаешь все созданные формы Б (например в TLIst)
4. В форме А переопределяешь Notification
5. Если форма Б закрывается то vcl известит A, о том, что форма Б закрывается (удаляется).
6. В А.Notification удаляешь из TList (см. п 3) закрытую пользователем форму.
7. При закрытии формы А пробегаешь по списку форм и вызываешь у них Close.
Все.
← →
msguns © (2005-11-25 13:52) [4]>_dimka © (25.11.05 13:05) [2]
>ну почему же?
Потому что иначе будет как в "Собачьем сердце":
"Простите, я не понял, кто на ком стоял ?"
← →
_dimka © (2005-11-25 13:54) [5]
> Потому что иначе будет как в "Собачьем сердце":
> "Простите, я не понял, кто на ком стоял ?"
Да нет :), нужно иммено MDI....
← →
msguns © (2005-11-25 14:02) [6]>_dimka © (25.11.05 13:54) [5]
>Да нет :), нужно иммено MDI....
Тогда объясни, ЧТО ИМЕННО ты понимаешь под МДИ.
Когда формы создаются "этажерочным" способом и при этом все доступны, то это и есть "кто на ком стоял ?". По крайней мере именно такое чувство возникнет у пользователя, когда он откроет штук 5-6 форм.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.015 c