Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1148624548
Russ
2006-05-26 10:22
2006.06.11
Из строки в Double


3-1145340573
Alexey V.
2006-04-18 10:09
2006.06.11
Для чего нужны хранимые процедуры?


2-1148557512
v eb
2006-05-25 15:45
2006.06.11
Прервать соединение


15-1147822853
Imbac
2006-05-17 03:40
2006.06.11
Сеть


4-1142354826
Volf_555
2006-03-14 19:47
2006.06.11
Как изменить UIN и пароль в QIP?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский