![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно уничтожать обьекты?
alles © (2007-09-13 13:07:00)Добрый день.
1. Как правильно уничтожать обьект(xmlResponse) типа TXMLDocument?
Я создаю его так:
xmlResponse:=TXMLDocument.Create(nil);
Достаточно просто писАть:xmlResponse:=nil;
Или надо так:
if Assigned(xmlResponse) then
begin
xmlResponse.Free;
xmlResponse:=nil;
end;
Kolan (2007-09-14 08:32:00) [1]А работать лучьше с
IXMLDocument
alles (2007-09-13 13:56:00) [2]спасибо всем за ответы
Reindeer Moss Eater (2007-09-13 13:46:00) [3]не надо.
alles (2007-09-13 13:38:00) [4]ok. И еще один вопрос:
Есть переменная типаolevariant
Var IdPay: olevariant;
даем ей обычьный стринг:
IdPay:=Request.Item['bankid']; // (Request type of IRequest - interface)
Надо в конце операций освобождать память под IdPay?
Reindeer Moss Eater (2007-09-13 13:31:00) [5]Ничего страшного не будет, даже если ничего не поставить
alles (2007-09-13 13:29:00) [6]2 Reindeer Moss Eater © (13.09.07 13:14) [1]
В инет нашел вот это:
When TXMLDocument is created without an Owner , it behaves like an interfaced object. That is, when all references to its interface are released, the TXMLDocument instance is automatically freed. When TXMLDocument is created with an Owner , however, it behaves like any other component, and is freed by its Owner .
Значит если поставитьxmlResponse:=nil;ничего страшного не будет?
Ksan (2007-09-13 13:23:00) [7]как рекомендция пользовать стандартную функцию FreeAndNil
if xmlResponse <> nil then
FreeAndNil(xmlResponse);
Reindeer Moss Eater (2007-09-13 13:14:00) [8]В данном конкретном случае уничтожать вообще ничего не надо.
xmlResponse будет чисто интефейсной ссылкой и кильнется при выходе из области видимости.