Вниз
Скачать: 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 вся ветка

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



Память: 0.47 MB
Время: 0.009 c
3-12271
snake7
2004-02-08 19:16
2004.03.05
Открытия таблицы с паролем из SQL запроса


1-12357
dm37
2004-02-25 15:04
2004.03.05
time


1-12343
Sungod
2004-02-22 13:36
2004.03.05
ShellTreeView отбражение файлов определённого типа


4-12578
_BladeR
2003-12-28 01:28
2004.03.05
Вопрос по параметрам CBTProc


14-12496
Alex Konshin
2004-02-12 09:00
2004.03.05
Наука и лженаука




   Наверх