Hi SneakyBagels
Tönt nicht schlecht - auf diese Weise hätte ich genau eine Instanz meiner FPathlist. Allerdings hat das in meinem Fall einen kleinen Haken:
FPathlist übernimmt in meinem PathfinderFrame die von DeddyH's
TFileSearch gefundenen Pfade:
Delphi-Quellcode:
procedure TPathFinderFrame.AddNewNode(ParentNode: TTreeNode; const aCaption,
aRealName: string; CanGetChildren: Boolean);
var
Node: TTreeNode;
NameRec: PNameRec;
begin
Node := TVPathExplorer.Items.AddChild(ParentNode, aCaption);
if CanGetChildren then
begin
Node.ImageIndex := 1;
Node.SelectedIndex := 1;
(* Dummy-Knoten anlegen *)
TVPathExplorer.Items.AddChild(Node, 'dummy');
end
else
begin
Node.ImageIndex := 2;
Node.SelectedIndex := 2;
FPathlist.Add(aRealName); //<==
end;
New(NameRec);
NameRec^.RealName := aRealName;
Node.Data := NameRec;
end;
AddNewNode wird das erste mal aus TPathFinderFrame.Create aus aufgerufen, um die Ordner der ersten Ebene darzustellen (Laufwerke). Danach erfolgen die Aufrufe immer aus den Expanding-Events des Treeviews. Denen kann ich die Liste nicht per Aufruf übergeben, da diese per Mousedown ausgelöst werden (wenn der User einen Ordner anklickt). Und bei jedem Klick eine neue Instanz erstellen, dürfte auch nicht wirklich das Wahre sein.
Gruss
Delbor