Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 400

/ вопрос открыт /

Здравствуйте!

Подскажите, как решить следующую задачу:

Есть форма-менеджер, из которой должны запускаться в любом количестве другие формы приложения.

1. Нужно по нажатию кнопки, чтобы создавался объект типа TForm столько раз, сколько это необходимо, как это можно сделать?

Пока у меня получилось создать только один объект
//TStartFormEquipment наследуется от TForm

MyFormEquipment := TStartFormEquipment.Create(Self);
MyFormEquipment.Show();


2. При закрытии формы-менеджера нужно, чтобы все созданные мною формы корректно закрывались.

Спасибо.

Aндрей Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Aндрей (статус: 1-ый класс)
Вопрос отправлен: 6 февраля 2009, 10:57
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Amidamaru

Здравствуйте, Aндрей!
Для создания экземпляра формы TStartFormEquipment не обязательно использовать переменную MyFormEquipment.

Всё можно сделать вот так: (см. Приложение)

А в OnClose класса формы TStartFormEquipment вставить Free; (если обработчик уже есть, то Free; нужно ставить последней строчкой). Если сделать так, что форма будет уничтожаться после закрытия.

Т.к. все формы создаются, указывая в качестве AOwner Application, то доступ к ним можно получить используя свойства Application ComponentCount и Components

А по поводу закрытия формы-менеджера, если эта форма создаётся первой, то она является главной формой (Application.MainForm) , при закрытии этой формы Application уничтожается и вместе с ним уничтожаются все остальные формы.

Приложение:
  1. with TStartFormEquipment.Create(Application) do
  2. begin
  3.  
  4. Show;
  5. end;


Ответ отправил: Amidamaru (статус: 4-ый класс)
Время отправки: 6 февраля 2009, 12:14
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Вадим К

Здравствуйте, Aндрей!
Почитайте мою статью здесь на сайте О формах
Там найдете практически все ответы.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 6 февраля 2009, 12:58


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 6 февраля 2009, 14:41; участников в обсуждении: 1.
Aндрей

Aндрей (статус: 1-ый класс), 6 февраля 2009, 14:41 [#1]:

Оч. помогло. Правда, кидает пару ошибок, но думаю, что это из-за статических объектов, должен разобраться.
Спасибо

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:02
Выполнено за 0.02 сек.