Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.05;
Скачать: CL | DM;

Вниз

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

 
Plt   (2004-02-23 13:16) [0]

B TreeView заполняю свойство Data:
TreeView.Items.AddObject(TTreeNode, S, Ptr).
Как правильно особождать память выделенную под структуру Ptr. По определенным обстоятельствам нельзя использовать событие OnClose.


 
-= Iton =- ©   (2004-02-23 13:58) [1]

Free


 
-= Iton =- ©   (2004-02-23 13:58) [2]

Free


 
Гаврила   (2004-02-23 14:05) [3]

это рекорд ?
тогда Dispose от типизированого указателя
повесть следует на Treeview.OnDeletion


 
Plt   (2004-02-23 14:07) [4]

Я делаю так:
procedure TMnForm.ClearMenuData;
var
i : integer;
begin
for i := 0 to DupView.Items.Count -1 do
begin
Dispose(DupView.Items[i].Data);
end;
end;

В OnClose обработать не могу, вызываю ClearMenuData в OnDestroy.
Но DupView.Items уже пусты. Может отдельно содать TList и с ним работать?


 
Гаврила   (2004-02-23 14:09) [5]

procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
var
P: PmyRecord
begin
P:= Node.data;
dispose(P);
end;


 
Plt   (2004-02-23 14:48) [6]

Я делаю так:
procedure TMnForm.ClearMenuData;
var
i : integer;
begin
for i := 0 to DupView.Items.Count -1 do
begin
Dispose(DupView.Items[i].Data);
end;
end;

В OnClose обработать не могу, вызываю ClearMenuData в OnDestroy.
Но DupView.Items уже пусты. Может отдельно содать TList и с ним работать?


 
icWasya ©   (2004-02-24 16:51) [7]

у TTreeView есть событие OnDeletion типа
procedure(Sender: TObject; Node: TTreeNode) of object;

вот там и всё это делать


 
Тимохов ©   (2004-02-24 16:56) [8]


> Plt (23.02.04 14:48) [6]


> Dispose(DupView.Items[i].Data);

Если у тебя это указатель на завись, содержащую строки или дин массивы, то так делать нельзя. Будет утечка памяти.


 
Гаврила   (2004-02-24 17:09) [9]

>>Тимохов © (24.02.04 16:56) [8]
Не согласен. Компилятор вызовет Finalize перед освобождением. Вот если освобождать с помощью FreeMem, то другое дело, будет утечка


 
Тимохов ©   (2004-02-24 17:11) [10]


> Гаврила (24.02.04 17:09) [9]

Не спорьте. Данная ошибка весьма типичка - нетипизированные указатели (data же нетипизированный) так освобождать нельзя.
Проверьте.



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
14-12524
kentavr
2004-01-23 13:38
2004.03.05
Проблема с Bitmap


8-12458
LEON88
2003-10-31 00:43
2004.03.05
Программа поверх игры


1-12368
ZyXel
2004-02-25 00:03
2004.03.05
Модули


1-12317
RomCom
2004-02-21 07:05
2004.03.05
RichEdit и OEM_CHARSET


3-12288
AlexLine
2004-02-07 14:55
2004.03.05
DBCtrlGrid