Einzelnen Beitrag anzeigen

pszopp

Registriert seit: 7. Sep 2005
Ort: Alsdorf
95 Beiträge
 
Delphi 2010 Professional
 
#2

Re: [VirtualTreeview]Items hinzufügen

  Alt 1. Jun 2006, 20:36
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
  Mit Zitat antworten Zitat