Главная страница
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.028 c
14-1078095935
Ske4er
2004-03-01 02:05
2004.03.28
Знаю, что ...


14-1078421430
Rouse_
2004-03-04 20:30
2004.03.28
С Днем Рождения 1 - 2 Марта (Наверстывая упущенное :)


1-1078761140
sergeii
2004-03-08 18:52
2004.03.28
Fast report


11-1056130575
DSP
2003-06-20 21:36
2004.03.28
как убрать иконку из системного трея


3-1077381952
HMT
2004-02-21 19:45
2004.03.28
Что "правильнее" использовать при построении систем склад-учёта?