Главная страница
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.014 c
14-12502
Dimka Maslov
2004-02-12 18:15
2004.03.05
Нашли ведь способ


7-12549
Sandman25
2003-12-16 12:52
2004.03.05
Сканер


7-12553
Retro
2003-12-16 23:52
2004.03.05
драйвер


1-12417
atmospheric
2004-02-25 15:13
2004.03.05
TimeStampToDateTime ?


11-12307
BelchonokH
2003-06-17 21:07
2004.03.05
Про инсталлятор