![]() |
|
![]() ![]() ![]() |
|
Бегемот |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 26.1.2005 Где: На границе Европы и Азии Репутация: 1 Всего: 3 |
<- Borland C++ Builder ->
Есть форма Form1. На ней кнопка Button1. При нажатии на Button1 динамически создаю форму MyForm, а на MyForm динамически создаю кнопку MyButton
Подскажите, плз, как обработать событие OnClick для MyButton ,по которому произойдёт закрытие MyForm и освобождение выделенной памяти под объекты MyForm и MyButton. |
|||
|
||||
Werti |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 22.5.2004 Репутация: нет Всего: 1 |
->Free() убивает объект а у тебя нуно перекинуть код в созданый дин объект то есть присвоить ему выполнение кода. |
||||
|
|||||
Vyacheslav |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Короче говоря поступаем в стиле "Сначала создаем трудности, а затем их героически преодолеваем
Ну да ладно. Это твои проблемы. Сам напросился
При этом кнопка останется жива до закрытия основной формы. И возникает вопрос, ну нафига так варварски использовать VC К тому же ты определенно поулучишь скорее всего Abstract Error Почему просто не создать еще одну форму с кнопкой. Указать в опциях что эта форма создается динамически. Задать обрабочик OnClose для этой формы
И тихо и мирно написать одну строку
-------------------- С уважением, Вячеслав Ермолаев |
||||||
|
|||||||
Бегемот |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 26.1.2005 Где: На границе Европы и Азии Репутация: 1 Всего: 3 |
Для чего вообще я напросился…
У меня в программе четыре формы. Одна форма, назовём её рабочей, должна быть постоянно отображена на экране, а с её закрытием происходит закрытие приложения. Остальные три формы (пусть будут дополнительными) вызываются по ходу выполнения программы и так же закрываются.(окно “О программе ” и т.п ). Так как потребность в дополнительных формах возникает редко, я решил подключить их динамически, а по мере их ненадобности высвобождать выделенную под них, и всё, что находится на них, память. Стоит ли вообще это делать? Оправдан ли такой способ? В чём плюсы и минусы? Напишите, пожалуйста! Или дайте ссылку. И ещё… Напиши, пожалуйста, где именно в опциях указать что эта форма создается динамически. СПАСИБО. |
|||
|
||||
Конструктор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 641 Регистрация: 12.5.2004 Где: Москва Репутация: нет Всего: 10 |
Чтобы добиться того что тебе нужно вовсе не обязательно создавать все компоненты формы динамически, ты просто создаешь в Билдере форму как и любую другую, работаешь с ней как и с любой другой формой. В опциях проекта Project->Options->Forms оставляешь в списке автоматически создаваемых форм свою главную форму (auto create forms), а остальные убираешь оттуда. Когда тебе нужно создать форму пишешь
удаляешь delete ом обычным и всего делов |
|||
|
||||
Nicky |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.12.2004 Где: Кишинёв Репутация: 1 Всего: 1 |
Спосибо! Это один из самых оптимальных вариантов!
![]() Но всёже ограничиваться только этим не стоит... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |