Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

Destroy компонента при TForm.Free   Найти похожие ветки 

 
Neo Trinitron ©   (2006-05-23 11:32) [0]

Есть форма, на ней грида. Нужно чтобы выполнился деструктор гриды при уничтожении формы. В OnClose формы пишу:


   Action:=caFree;


Однако деструктор гриды не вызывается, если я явно его не вызову. Почему? По идее при разрушении формы вызываются деструкторы всех компонентов на ней...


 
umbra ©   (2006-05-23 11:37) [1]


> Однако деструктор гриды не вызывается, если я явно его не
> вызову.

с чего Вы это взяли?


 
Ega23 ©   (2006-05-23 11:39) [2]

Как создавал грид?


 
Amoeba ©   (2006-05-23 11:39) [3]


> Нужно чтобы выполнился деструктор гриды при уничтожении
> формы.

Компонент создан в DesignTime или в RunTime?


 
Neo Trinitron ©   (2006-05-23 11:42) [4]

> Компонент создан в DesignTime или в RunTime?

В DesignTime

>Как создавал грид?
В смысле? С палитры компонентов перетащил на форму.


 
Ega23 ©   (2006-05-23 11:46) [5]


> В смысле? С палитры компонентов перетащил на форму.
>


Тогда - врёшь, при удалении парента деструктор грида обязательно вызовется.


 
Neo Trinitron ©   (2006-05-23 12:30) [6]

> при удалении парента деструктор грида обязательно вызовется.

Вот! И я так знаю, но увы, не работает! По задумке в деструкторе вызывается очистка фильтра приатаченого датасета (который не разрушается), а он не чистится если явно не указываю Destroy...


 
ЮЮ ©   (2006-05-23 12:30) [7]

>Однако деструктор гриды не вызывается
Откуда такое умозаключение?


 
Desdechado ©   (2006-05-23 12:34) [8]

> По задумке в деструкторе вызывается
ну-ка, ну-ка
код в студию


 
Neo Trinitron ©   (2006-05-23 12:37) [9]

>ну-ка, ну-ка
>код в студию


 public
   constructor Create(AOwner: TComponent);override;
   destructor Destroy;
.......................
destructor TDBGridEhFilter.Destroy;
begin
  with DataSource.DataSet do begin
     Filtered:=false;
     Filter:="";
  end; {with}
  inherited Destroy;
end;
..........................


 
Neo Trinitron ©   (2006-05-23 12:38) [10]

ЮЮ, прямо над Вашим постом ответ на Ваш вопрос...


 
Amoeba ©   (2006-05-23 12:42) [11]

А вот и причина!

> public
>    constructor Create(AOwner: TComponent);override;
>    destructor Destroy;

Где override в объявлении деструктора? Деструкторы всегда виртуальные ведь!


 
Desdechado ©   (2006-05-23 12:43) [12]

компонент самописный?
а деструктор специально не перекорываешь?


 
Neo Trinitron ©   (2006-05-23 12:46) [13]

Amoeba ©, спасибо! Всё получилось! Буду знать теперь.


 
Elen ©   (2006-05-23 12:46) [14]


> Neo Trinitron ©

Извини за глупый вопрос, но зачем сбрасывать фильтр если уничтожаеш форму? (т.е. закрываеш все как есть)



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.054 c
15-1147903490
SergProger
2006-05-18 02:04
2006.06.11
Подработаем, господа прогеры!


3-1145426749
WellSlava
2006-04-19 10:05
2006.06.11
экспорт в *.dbf


15-1147840595
Layner
2006-05-17 08:36
2006.06.11
ActiveX в браузере IE6, браузер постоянно пишет:


3-1145358293
S{NIK}
2006-04-18 15:04
2006.06.11
большой SQL запрос


2-1148528778
lobach
2006-05-25 07:46
2006.06.11
Html страницы