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

Вниз

О констукорах и деструкторах компанент   Найти похожие ветки 

 
Pattern   (2003-11-02 15:04) [0]

Вопрос чисто теоретического характера. Допустим я создаю какую то свою составную компаненту на основе TPanel. На ней создаётся ещё ряд других компанент TImage, штук 10 TLabel и т.п.
constructor TMyPanel.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
MyImage := TImage.Create(Self);
MyImage.Parent := Self;
MyLabel1 := TLabel.Create(Self);
MyLabel1.Parent := Self;
MyLabel2 := TLabel2.Create(Self);
MyLabel2.Parent := Self;
..

Теперь эта готовая компанента будет создаваться на форме динамически ввиде массива таких компанент. Естественно, общее количество компанент на форме будет значительно расти с появлением каждой следующей компаненты. Так вот в чём вопрос. При уничтожении формы, вместе с ней уничтожаются и все компаненты, которые находятся на ней. Нужно ли прописывать деструктор для компаненты, или этот момент можно опустить? И в то же время как прописывать данный деструктор? Просто уничтожить компаненту, или сначала освободиться от принадлежащих ей TLabel"ов и TImage?


 
Anatoly Podgoretsky   (2003-11-02 15:08) [1]

Если принадлежит, то удалит


 
Calm   (2003-11-02 15:08) [2]

Просто уничтожить.


 
Юрий Федоров   (2003-11-02 15:11) [3]

Если параметром конструктора передается self, то разрушение TLabel"ов и TImage произойдет автоматически при разрушении самого компонента. Но не будет ошиибкой и разрушить их в деструкторе. Второй вариаант на мой взгляд предпостиительней с точки зрения стиля программирования


 
Pattern   (2003-11-02 15:12) [4]

Большое спасибо всем за советы!



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

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

Наверх




Память: 0.45 MB
Время: 0.032 c
1-41365
Элина
2003-10-29 12:01
2003.11.13
DLL и строка


1-41601
han-bratan
2003-11-03 12:55
2003.11.13
русские буквы при нерускком locale


1-41624
Chlavik
2003-10-25 13:58
2003.11.13
SysImageList... (Иконки)


14-42037
Brahman
2003-10-16 12:23
2003.11.13
В осени что-то есть:)


1-41589
VaZa
2003-10-24 23:24
2003.11.13
Список установленых программ





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский