![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Destroy компонента при TForm.Free [D6, 2000]
Neo Trinitron © (2006-05-23 11:32:00)Есть форма, на ней грида. Нужно чтобы выполнился деструктор гриды при уничтожении формы. В OnClose формы пишу:
Action:=caFree;
Однако деструктор гриды не вызывается, если я явно его не вызову. Почему? По идее при разрушении формы вызываются деструкторы всех компонентов на ней...
Neo Trinitron (2006-05-23 12:46:00) [1]Amoeba ©, спасибо! Всё получилось! Буду знать теперь.
Elen (2006-05-23 12:46:00) [2]
> Neo Trinitron ©
Извини за глупый вопрос, но зачем сбрасывать фильтр если уничтожаеш форму? (т.е. закрываеш все как есть)
Desdechado (2006-05-23 12:43:00) [3]компонент самописный?
а деструктор специально не перекорываешь?
Amoeba (2006-05-23 12:42:00) [4]А вот и причина!
> public
> constructor Create(AOwner: TComponent);override;
> destructor Destroy;
Где override в объявлении деструктора? Деструкторы всегда виртуальные ведь!
Neo Trinitron (2006-05-23 12:38:00) [5]ЮЮ, прямо над Вашим постом ответ на Ваш вопрос...
Neo Trinitron (2006-05-23 12:37:00) [6]>ну-ка, ну-ка
>код в студию
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;
..........................
Desdechado (2006-05-23 12:34:00) [7]> По задумке в деструкторе вызывается
ну-ка, ну-ка
код в студию
Neo Trinitron (2006-05-23 12:30:00) [8]> при удалении парента деструктор грида обязательно вызовется.
Вот! И я так знаю, но увы, не работает! По задумке в деструкторе вызывается очистка фильтра приатаченого датасета (который не разрушается), а он не чистится если явно не указываю Destroy...
ЮЮ (2006-05-23 12:30:00) [9]>Однако деструктор гриды не вызывается
Откуда такое умозаключение?
Ega23 (2006-05-23 11:46:00) [10]
> В смысле? С палитры компонентов перетащил на форму.
>
Тогда - врёшь, при удалении парента деструктор грида обязательно вызовется.
Neo Trinitron (2006-05-23 11:42:00) [11]> Компонент создан в DesignTime или в RunTime?
В DesignTime
>Как создавал грид?
В смысле? С палитры компонентов перетащил на форму.
Ega23 (2006-05-23 11:39:00) [12]Как создавал грид?
Amoeba (2006-05-23 11:39:00) [13]
> Нужно чтобы выполнился деструктор гриды при уничтожении
> формы.
Компонент создан в DesignTime или в RunTime?
umbra (2006-05-23 11:37:00) [14]
> Однако деструктор гриды не вызывается, если я явно его не
> вызову.
с чего Вы это взяли?