Вниз
Скачать: CL | DM;

данные в TreeView   Найти похожие ветки 

 
tytus ©   (2004-03-10 01:18) [0]

В хелпе сказано (и Фаронов пишет то же), что при удалении узла TreeView указатель на данные НЕ освобождается. Как же его освободить, если данные записываются функцией
TV.AddChildObject(TV.Items[0],"Text",Pointer(True))?
Или память автоматически освобождается при закрытии программы?


 
Petr V. Abramov ©   (2004-03-10 01:45) [1]

> Или память автоматически освобождается при закрытии программы?
 Освобождается. Только часто с AV на закрытии приложения.

> Как же его освободить,

property OnDeletion: TTVExpandedEvent;

Description

Write an OnDeletion event handler to respond when a node is deleted from the tree view control.

 Правда, destroy`е TreeView оно не возникает, но эта ситуация проще, тут можете сами че-нить придумать


 
Petr V. Abramov ©   (2004-03-10 01:52) [2]

Кстати, пардон, и на destroy`е возникает, просто пробовал не на стандартном TreeView, а на хитром. Заодно и недокументированную фичу :) этого хитрого TreeView нашел :)


 
Defunct ©   (2004-03-10 02:02) [3]

> этого хитрого TreeView нашел :)

скорее баг ;)


 
Petr V. Abramov ©   (2004-03-10 02:20) [4]

> Defunct ©   (10.03.04 02:02) [3]
 Не баг, а фичу. Баг - это несоответствие требованиям или докуменитации. А так этот OnDeletion мне нахрен не нужен, а документации нет - фича :)


 
KSergey ©   (2004-03-10 08:30) [5]

> tytus ©   (10.03.04 01:18)  
> В хелпе сказано (и Фаронов пишет то же), что при удалении
> узла TreeView указатель на данные НЕ освобождается.

Немного не пойму я вашего вопроса.
"указатель на данные НЕ освобождается" - зачем освобождать указатель?? Указатель и не надо освобождать, надо освободить ту динамическую память, которая была выделена и указатель на которую имеем. Вот и все. Только это для случая, когда память выделяется.

> Как
> же его освободить, если данные записываются функцией
> TV.AddChildObject(TV.Items[0],"Text",Pointer(True))?
> Или память автоматически освобождается при закрытии программы?

Т.е. фактически запихиваем данные, означающие True/False? Я верно понимаю? А тогда об освобождении какой памяти вообще идет речь? Разве вы ее запрашивали у системы? А та тапять, которая занята собственно указателем (4 байта, подразумевается - адрес) - они сами собой и освободятся, естественно. Ведь место под их хранение выделяет себе компонент (а точнее даже - Win-контрол). Он сам все и почистит.

Освобождать надо было бы в том случае, если бы вы самостоятельно выделяли какую-либо память (создавали объект).



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
8-1069102281
Aleksey_
2003-11-17 23:51
2004.03.28
Мерцание рисунка


9-1062410426
Cyber Chaynik
2003-09-01 14:00
2004.03.28
3D на основе фото


6-1073721833
shur2005
2004-01-10 11:03
2004.03.28
Порты


1-1078325312
able
2004-03-03 17:48
2004.03.28
HTML - подсветка синтаксиса в TRichEdit, оптимизация.


14-1077854047
R
2004-02-27 06:54
2004.03.28
Какой язык программирования для Internet выбрать




   Наверх