Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Вниз

Destroy or Free   Найти похожие ветки 

 
novice_man ©   (2004-11-11 08:29) [0]

Что выбрать Destroy или Free (список TList) и в чем разница.


 
Семен Сорокин ©   (2004-11-11 08:36) [1]

Выбирай Free, он делает проверку на существование экземпляра класса:

procedure TObject.Free;
begin
 if Self <> nil then
   Destroy;
end;


 
begin...end ©   (2004-11-11 08:39) [2]

novice_man ©   (11.11.04 8:29)

Отрывок из справки по TObject.Destroy:

Do not call Destroy directly. Call Free instead. Free verifies that the object reference is not nil before calling Destroy.

Unlike Destroy, Free provides a safeguard when destroying objects that are nil.

А вот и код из System.pas:

destructor TObject.Destroy;
begin
end;

procedure TObject.Free;
begin
 if Self <> nil then
   Destroy;
end.

В других классах (потомках TObject) в деструкторе Destroy могут производиться операции по "подготовке к уничтожению" - освобождение ресурсов, и т.д. Например, вод код деструктора TList.Destroy из Classes.pas:

destructor TList.Destroy;
begin
 Clear;
end.


 
novice_man ©   (2004-11-11 08:49) [3]

Спасибо за ответ. (Да, нужно читать справку к программе)


 
SergP ©   (2004-11-11 09:08) [4]


> он делает проверку на существование экземпляра класса:


ИМХО проверка или указатель не равен Nil еще не значит что это проверка на существование экземпляра класса...


 
Семен Сорокин ©   (2004-11-11 09:13) [5]


> SergP ©   (11.11.04 09:08) [4]

Началось, а как Вы обычно проверяете битая ссылка или нет, у Вас есть код?
Имхо, при правильном подходе это именно и есть проверка на существование экземпляра.



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

Форум: "Потрепаться";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.056 c
14-1099945909
Cerberus
2004-11-08 23:31
2004.11.28
Хостинг


3-1098919357
Wital
2004-10-28 03:22
2004.11.28
Change ADO Langdriver Paradox


14-1100100839
}|{yk
2004-11-10 18:33
2004.11.28
Наконец-то вышел Firefox 1.0


3-1099041383
art
2004-10-29 13:16
2004.11.28
Программная конфигурация BDE


14-1099323646
OSokin
2004-11-01 18:40
2004.11.28
Оцените новый сайт (личный)





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