Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как уничтожить форму 
V
    Опции темы
Нитонисе
Дата 28.12.2012, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



Есть главная форма приложения Form1, на ней кнопка, которая создает две формы Form2 и Form3 и делает видимой Form2.  
Код

    Application->CreateForm(__classid(TForm2), &Form2);
    Application->CreateForm(__classid(TForm3), &Form3);
    Form2->Show();

Из формы Form2 я запускаю видимость Form3. 
Потом мне нужно закрыть и разрушить объекты Form2 и Form3. Пишу обработчик для события OnClose формы Form2
Код

Action = caFree;

Как мне в этом же обработчике уничтожить и Form3? 

Это сообщение отредактировал(а) Нитонисе - 28.12.2012, 13:36
PM MAIL   Вверх
artsb
Дата 28.12.2012, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Код

delete Form3;

?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
mes
Дата 28.12.2012, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 6
Всего: 250



вариантов два :
  либо передать вызов, тому кто знает форм3
  либо форм2 получить указатель на форм3



--------------------
PM MAIL WWW   Вверх
artsb
Дата 28.12.2012, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



И что за мода у людей создавать формы так:
Код

Application->CreateForm(__classid(TForm2), &Form2);

почему не:
Код

Form2 = new TForm2(this);

?

Добавлено через 43 секунды
Цитата(mes @  28.12.2012,  13:56 Найти цитируемый пост)
  либо передать вызов, тому кто знает форм3
  либо форм2 получить указатель на форм3

Цитата(Нитонисе @  28.12.2012,  13:36 Найти цитируемый пост)
Из формы Form2 я запускаю видимость Form3. 

Похоже есть указатель.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Нитонисе
Дата 28.12.2012, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



artsbdelete Form3 не выходит. Или может я сужу не правильно. Я поставил в обработчик OnDestroy формы Form3 вывод сообщения ShowMessage("Destroy."). Так вот оно не появляется при закрытии Form2. Появляется только при закрытии Form1.

Цитата(artsb @  28.12.2012,  13:58 Найти цитируемый пост)
И что за мода у людей создавать формы так:

Сам билдер так делает.
PM MAIL   Вверх
artsb
Дата 28.12.2012, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



У меня выдаёт сообщение.

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  tst.zip 181,81 Kb


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Нитонисе
Дата 28.12.2012, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



Цитата(artsb @  28.12.2012,  14:34 Найти цитируемый пост)
У меня выдаёт сообщение.

Ну вы совсем все по другому организовали. Я формы создаю методом по умолчанию.

Добавлено через 14 минут и 13 секунд
Проблема как всегда в невнимательности. Дело в том, что у меня в OnClose Form2 сначала идет запрос сохранения данных в файл и только потом разрушение форм. Так вот в диалоге сохранения данных я просто закрывал Form2 без уничтожения, поскольку в некоторых ветках применил оператор return. Из-за него то Form3 не разрушалась. Равно как и Form2.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0722 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.