Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: 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 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
6-1073819730
PInokio
2004-01-11 14:15
2004.03.28
Цикл для ClientSocket plz Help


14-1077775428
Hooch
2004-02-26 09:03
2004.03.28
извлечение иконок из Офиса


3-1077912152
jafar
2004-02-27 23:02
2004.03.28
Передача параметра типа TDaateTime в TADOQuery


3-1077782615
Max
2004-02-26 11:03
2004.03.28
Запрос на объединение


6-1073970178
Andrey V.
2004-01-13 08:02
2004.03.28
Unable to complete network ...