Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по функции: 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]

Не освобождает..., проверил...
а может кто подскажет, как быстренько осободить память не прибегая к пробеганиям по всем структурам и деланием диспоуза?


Наверх

Титульная страница Поиск, карта сайта Написать письмо