Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > Динамическое создание и удаление объектов |
Автор: Бегемот 30.1.2005, 14:52 | ||
<- Borland C++ Builder -> Есть форма Form1. На ней кнопка Button1. При нажатии на Button1 динамически создаю форму MyForm, а на MyForm динамически создаю кнопку MyButton
Подскажите, плз, как обработать событие OnClick для MyButton ,по которому произойдёт закрытие MyForm и освобождение выделенной памяти под объекты MyForm и MyButton. |
Автор: Werti 31.1.2005, 01:15 | ||||
->Free() убивает объект а у тебя нуно перекинуть код в созданый дин объект то есть присвоить ему выполнение кода. |
Автор: Vyacheslav 31.1.2005, 11:04 | ||||||
Короче говоря поступаем в стиле "Сначала создаем трудности, а затем их героически преодолеваем Ну да ладно. Это твои проблемы. Сам напросился
При этом кнопка останется жива до закрытия основной формы. И возникает вопрос, ну нафига так варварски использовать VC К тому же ты определенно поулучишь скорее всего Abstract Error Почему просто не создать еще одну форму с кнопкой. Указать в опциях что эта форма создается динамически. Задать обрабочик OnClose для этой формы
И тихо и мирно написать одну строку
|
Автор: Бегемот 5.2.2005, 01:00 |
Для чего вообще я напросился… У меня в программе четыре формы. Одна форма, назовём её рабочей, должна быть постоянно отображена на экране, а с её закрытием происходит закрытие приложения. Остальные три формы (пусть будут дополнительными) вызываются по ходу выполнения программы и так же закрываются.(окно “О программе ” и т.п ). Так как потребность в дополнительных формах возникает редко, я решил подключить их динамически, а по мере их ненадобности высвобождать выделенную под них, и всё, что находится на них, память. Стоит ли вообще это делать? Оправдан ли такой способ? В чём плюсы и минусы? Напишите, пожалуйста! Или дайте ссылку. И ещё… Напиши, пожалуйста, где именно в опциях указать что эта форма создается динамически. СПАСИБО. |
Автор: Конструктор 6.2.2005, 22:21 | ||
Чтобы добиться того что тебе нужно вовсе не обязательно создавать все компоненты формы динамически, ты просто создаешь в Билдере форму как и любую другую, работаешь с ней как и с любой другой формой. В опциях проекта Project->Options->Forms оставляешь в списке автоматически создаваемых форм свою главную форму (auto create forms), а остальные убираешь оттуда. Когда тебе нужно создать форму пишешь
удаляешь delete ом обычным и всего делов |
Автор: Nicky 10.2.2005, 19:18 |
Спосибо! Это один из самых оптимальных вариантов! ![]() Но всёже ограничиваться только этим не стоит... |