Thema: Delphi TTreeView Frage

Einzelnen Beitrag anzeigen

Ascuriah

Registriert seit: 6. Okt 2010
52 Beiträge
 
#1

TTreeView Frage

  Alt 29. Nov 2010, 15:33
Hallo DP'ler

Ich hab ein Problem, ich hab mir ne Procedur geschrieben die einen bestimmten Pfad als TreeView angiebt. Problem daran ist, das aus dem gewählten Pfad in jedem Level nur bestimmte Ordner angezeigt bzw zum View hinzugefügt werden.
Die Procedur sieht wie folgt aus:

Delphi-Quellcode:
procedure TForm1.ShowDirectory(_Tree: TTreeView; _sVerzeichnis: string; _KnotenRoot: TTreeNode);
{$region 'Kommentar ShowDirectory( _Tree:TTreeView,  _sVerzeichnis:string,  _Eintrag:TTreeNode, )'}
{*
   Beschreibung  :  Procedur baut aus einer Pfadangabe einen TreeView
 
   @param _Tree  :  der Tree der neu erstellt wird
   @param _sVerzeichnis  :  das QuellVerzeichnis aus dem der Tree entsteht
   @param _Eintrag  :  der erste Startknoten
}

{$endregion}
var
   SearchRec : TSearchRec;
   KnotenNeu : TTreeNode;
   verz, str : string;
   i : integer;
begin
   verz := _sVerzeichnis;
   _Tree.Items.BeginUpdate;
   verz := IncludeTrailingPathDelimiter(verz);
   if FindFirst(verz + '*.*',faDirectory, SearchRec) = 0 then
   begin
      repeat
         if (SearchRec.Attr and faDirectory = faDirectory) and
         ((SearchRec.Name[1] = 'K') or
         (SearchRec.Name[1] = 'M') or
         (SearchRec.Name[1] = 'F') or
         (SearchRec.Name[1] = '0')) then
         begin
            if ((SearchRec.Attr and faDirectory) <> 0) then
            begin
               _KnotenRoot := _Tree.Items.AddChild(_KnotenRoot, SearchRec.Name);
               KnotenNeu := _KnotenRoot.Parent;
               ShowDirectory(_Tree, verz + SearchRec.Name, _KnotenRoot);
               _KnotenRoot := KnotenNeu;
            end;

         end;
      until FindNext(SearchRec) <> 0 ;
      FindClose(SearchRec);
   end;
   _Tree.Items.EndUpdate;
end;
Ziel ist jetzt das in Level 0 nur die Ordner hinzugefügt werden sollen bei dehnen SearchRec.Name[1] ein K ist und SearchRec.Name[2] eine Ziffer.
Bei Level 1 SearchRec.Name[1] ein M und SearchRec.Name[2] eine Ziffer und bei Level 2 dürfen nur noch Ordner hinzugefügt werden die mit der Ziffer [01] beginnen.
Das ganze funktioniert auch halb mit den 4 Vergleichen die ich oben gemacht habe aber ich kriegs einfach ned hin den SearchRec.Name[2] mit zu überprüfen.

Vielleicht weis ja jemand von euch Rat oder ne Idee wie das noch viel leichter geht
mfg
Ascu

Geändert von Ascuriah (29. Nov 2010 um 15:37 Uhr)
  Mit Zitat antworten Zitat