Ich habe hier 10 Jahre alten Qellcode von @himitsu gefunden der so aussieht als ob das genau das ist was ich suche. Leider sagt Delphi 11 das es
Delphi-Quellcode:
Info^.Path := True;
Info^.Name := aPath + SearchRec.Name;
.Path und .Name nicht kennt (undeklarierter Bezeichner).
Nun weiß ich leider von Pointern und dem ganzen zu wenig das ich den Fehler selber verstehe ... Info wird oben in den Variablen definiert, PNodeInfo kommt
imho aus den
Vcl.ComCtrls und die sind mit Uses eingebunden ... was ist da falsch ?
Gruss
Hans
Delphi-Quellcode:
Procedure FindFilesTree(aTree: TTreeView; aPath: String; aNode: TTreeNode; aWithFiles: Boolean);
Var
SearchRec: TSearchRec;
NodeTmp: TTreeNode;
Info: PNodeInfo;
FileInfo: TShFileInfo;
Begin
aTree.Items.BeginUpdate;
// Wenn am Ende der Pfadangabe noch kein \ steht, dieses hinzufügen
aPath := IncludeTrailingBackslash(aPath);
If FindFirst(aPath + '*.*', faDirectory, SearchRec) = 0 Then
Begin
Repeat
If (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
Begin
New(Info);
Info^.Path := SearchRec.Attr and faDirectory <> 0;
Info^.Name := aPath + SearchRec.Name;
NodeTmp := aTree.Items.AddChildObject(aNode, SearchRec.Name, Info);
If Info^.Path Then
Begin
NodeTmp.ImageIndex := 1;
FindFilesTree(aTree, aPath + SearchRec.Name, NodeTmp, aWithFiles);
End
Else
Begin
SHGetFileInfo(PChar(aPath + SearchRec.Name), 0, FileInfo,
SizeOf(FileInfo), SHGFI_ICON or SHGFI_SMALLICON);
NodeTmp.ImageIndex := FileInfo.iIcon;
End;
End;
Until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
End;
aTree.Items.EndUpdate;
End;