Hallo,
ich habe ein paar Kleinigkeiten gefunden.
Vielleicht ist ja die Fehlerursache dabei:
Delphi-Quellcode:
procedure TFEditorMain.TreeFilesExpanding(Sender: TBaseVirtualTree;
Node: PVirtualNode; var Allowed: Boolean);
var
slist: tstringlist;
i: integer;
rp: TAI_TreeItem;
begin
if node = htdocs then begin
TreeFiles.DeleteChildren(node);
// Kommentiere diese Zeile mal aus. !!! Sie erzeugt ein Speicherleck.
//slist:= tstringlist.Create;
slist:=Lister.listdirs(fhtdocs);
try
TreeFiles.BeginUpdate;
try
for i:=0 to slist.Count-1 do begin
rp.path:= lister.path+slist[i];
rp.self:= slist[i];
// NodeDataSize sollte nur einmal beim
// Programmstart eingestellt werden.
// Danach sollte sich NodeDataSize eigentlich nicht mehr ändern.
TreeFiles.NodeDataSize:=SizeOf(TAI_TreeItem);
AddVSTStructure(TreeFiles, node, rp);
end; // for lk
finally
TreeFiles.EndUpdate;
end; // finally
finally
FreeAndNil(slist);
end;
end; // if
end; // TreeFilesExpanding
function TFEditorMain.AddVSTStructure(AVST: TCustomVirtualStringTree;
ANode: PVirtualNode; ARecord: TAI_TreeItem): PVirtualNode;
var
Data: PAI_TreeItem;
begin
Result:=AVST.AddChild(ANode);
Data:=AVST.GetNodeData(Result);
Avst.ValidateNode(Result, False);
Data^.kind:=ARecord.kind;
Data^.path:=ARecord.path;
Data^.self:=ARecord.self;
end; // AddVSTStructure
Grüße,
pszopp
www.pstipp.de | Tippseite zur Formel 1 und Fußball WM/EM - kostenlos und Just-For-Fun