![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по функции: TTreeView.Items.AddObject(TTreeNode, S, Ptr)
Gumbert-Gumbert © (2002-05-19 16:23:00)Люди, подскажите плиз:
В ТтрииВью есть такая функция:
TTreeView.Items.AddObject(TTreeNode, S, Ptr).
Вопрос: при дестрое дерева освобождается ли память
выделенная под структуру, которую я записал в Ptr (см. описание функции)
И если не освобождается, как можно без гемора её освободить...
Т.е. я конечно понимаю, что можно эту структуру можно сделать списком
и потом по нему пройтись и всё диспозе сделать..., но может можно и
без этого?
Заранее спасибо
Slym (2002-05-20 07:34:00) [1]AddObject
делает просто Add, а потом Node.Data:=object;
Node.Data - pointer - это указатель, никакой памяти не выделяется
но если
childNode:=TTreeView.Items.AddObject(Node,S,TObject.Create(nil));
то указатель на обект сохраняется только в childNode.Data
и что бы при уничтожении ноды удалять обект нужно:
TreeView.OnDeleting(sender,node,allow)
begin
(Node.Data as TObject).Free;
end;
Cobalt (2002-05-19 18:08:00) [2]Только если ты САМ выделяешь память под свои нужды в отдельной куче (HEAP).
Gumbert-Gumbert (2002-05-19 16:38:00) [3]Не освобождает..., проверил...
а может кто подскажет, как быстренько осободить память не прибегая к пробеганиям по всем структурам и деланием диспоуза?