Hi
ich habe eine TreeView die ich dynamisch befülle.
da das im laufe des Programms mehrmals vorkommen kann, habe ich mir folgendes überlegt:
Delphi-Quellcode:
procedure UpdateTreeView;
var i:Integer;
begin
{ ... Daten holen etc. ... }
FTree.Items.Clear; //TreeView leeren
for i:=0 to Length(FNodes)-1 do //Nodes plattmachen
if FNodes[i]<>nil then FNodes[i].Free;
SetLength(FNodes,FGruppen.Count+FLieder.Count); //Array setzen
for i:=0 to Length(FNodes)-1 do //Nodes erstellen
FNodes[i]:=TTreeNode.Create(FTree.Items);
{ ... Nodes setzen und in TreeView rein ... }
end;
aber beim Free'en der Nodes kommt es immer zu ner
AV (Wenn sie schon exitieren)
wenn ich die schleife weglasse habe ich ein monster-Speicherleck was eigentlich nur daher kommen kann.
weiss einer was daran falsch ist? bzw wie ich es anders machen kann?
Edit: FNodes ist ein array of TTreeNode, FGruppen und FLieder TStringList und FTree eine TreeView.