Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как правильно использовать Деструктор? (число прочтений - 3613 )
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Как правильно использовать Деструктор?
20. Июля 2006 :: 08:36
Печать  
Просто обнулить переменные, чтобы не было утечек это понятно...

Смысл проблемы вот в чем. Есть класс, наследник ТП, при уничтожении которого хочу пройтись по колонкам и сохранить значения их ширины.
Если этот код вставлять в деструктор, то обращение Сам().Колонки - пустой объект, они уже к этому времени уничтожены...

Вводить дополнительный метод в код не хотелось бы, а то придется править кучу документов.
Какие есть варианты?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Как правильно использовать Деструктор?
Ответ #1 - 20. Июля 2006 :: 09:10
Печать  
Сериализация структуры колонок.
Тоже проходил через это.
Решение было таким (в двух словах):
- в исходники 1с++ ТП было добавлено событие ПриРазрушении() которое возникает при разрушении окна контрола, но до деструктора.
- был разработан КОП, базовый для всех КОПов ТП нуждающихся в сериализации своей структуры колонок. В нем реализована собственно сериализация/десериализация и обработка события ПриРазрушении().
- при инициализации ТП на форме нужно вызвать метод Сериализация() вышеупомянутого КОПа, что приводило в первую очередь к десериализации и служило сигналом тому, что при разрушении (в соответствующем событии) будет авто-сериализация.
  

1&&2&&3
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как правильно использовать Деструктор?
Ответ #2 - 20. Июля 2006 :: 09:13
Печать  
trad писал(а) 20. Июля 2006 :: 09:10:
- в исходники 1с++ ТП было добавлено событие ПриРазрушении() которое возникает при разрушении окна контрола, но до деструктора.


Может добавить это для всех? Улыбка
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как правильно использовать Деструктор?
Ответ #3 - 17. Августа 2006 :: 08:07
Печать  
trad писал(а) 20. Июля 2006 :: 09:10:
- в исходники 1с++ ТП было добавлено событие ПриРазрушении() которое возникает при разрушении окна контрола, но до деструктора.


Может вставишь код в 1сpp, а... Жутко хочется...
Приходится плодить код из-за отсутствия этого события Печаль
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Как правильно использовать Деструктор?
Ответ #4 - 17. Августа 2006 :: 09:41
Печать  
если это нужно только для сериализации ТП, то хочу сказать что скоро ТП само научиться это делать.
и необходимость в этом событии отпадет
  

1&&2&&3
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как правильно использовать Деструктор?
Ответ #5 - 17. Августа 2006 :: 11:47
Печать  
Ясно, бум ждать
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать