Форум: "Начинающим";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
Вниз
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c