Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2012, 21:03   #1
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию Уничтожение объектов

Добрых суток.
Возникла следующая проблема, есть главное окно из меню главного окна вызывается некоторая ФОРМА в модальном режиме. На этой форме есть компоненты допустим ПОЛЕ и КНОПКА, изначально у ПОЛЯ свойство visible установлено в true. По нажатию КНОПКИ свойство visible ПОЛЯ становится false.
Если я закрываю ФОРМУ не выходя из программы, а потом опять ее открываю из главного окна то ПОЛЕ отсутствует (свойство visible установлено в false), а очень сильно хочется чтобы ПОЛЕ было видно. Я так понимаю после закрытия ФОРМЫ не происходит уничтожение объекта и наверное надо чет ручками написать, помудрил с деструктором полезли ошибки. Можно конечно в событии OnClose вернуть нужные свойства но объектов штук 40 на форме и у каждого несколько свойств меняется, лениво да и глупо наверное.
Подскажите пожалуйста что можно сделать?
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Старый 01.06.2012, 09:24   #2
Aventus
Пользователь
 
Аватар для Aventus
 
Регистрация: 20.02.2012
Сообщений: 42
По умолчанию

Вам может помочь слудующий код:
TEdit mas[40];
for(int i=0;i<40;i++){
mas[i]=new TEdit(this);
mas[i]->Parent=Form2;
mas[i]->Top=100;
mas[i]->Left=100;
}
вставьте этот кусок кода в событие OnCreate. Тут мы создадим масив полей. Объявите mas выше. Потом уже вы в обычном цикле будете их обрабатывать
Aventus вне форума Ответить с цитированием
Старый 01.06.2012, 11:09   #3
nick42
Форумчанин
 
Аватар для nick42
 
Регистрация: 14.10.2011
Сообщений: 267
По умолчанию

Цитата:
Сообщение от atenon Посмотреть сообщение
Подскажите пожалуйста что можно сделать?
Если устроит установка ВСЕХ объектов формы в изначальное состояние, то можно попробовать так:__
Код:
     bool obrb;
//---------------------------------------------------------------------------

void __fastcall TForm2::FormPaint(TObject *Sender)
{
    if (!obrb)  {
      TResourceStream *Rs = new TResourceStream(0,"TFORM2",RT_RCDATA);
      for(;Form2->ComponentCount>0;) delete Form2->Components[0] ;
      Rs->ReadComponent(Form2);
      delete Rs;
      obrb = true;  }
}
И на FormClose устанавливать obrb=false;

Последний раз редактировалось nick42; 01.06.2012 в 11:11.
nick42 вне форума Ответить с цитированием
Старый 01.06.2012, 18:44   #4
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Спасибо!! Все отлично сработало!
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание и уничтожение объектов. Время жизни объектов C++/C# Anett// Помощь студентам 0 24.10.2011 23:26
Уничтожение формы Валера К Помощь студентам 3 18.03.2011 09:02
Создание/уничтожение объектов nimf Общие вопросы Delphi 10 14.04.2008 10:54
Уничтожение окна Kashp Win Api 20 07.09.2007 14:15