Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#5

Re: TTreeView alles dopelt, warum ?

  Alt 14. Aug 2006, 16:28
habe das problem mit hilfe diese änderungen selbst behäben können *G*

Delphi-Quellcode:
function TForm2.GetAnderDir(dir:String):boolean;
var
  sr:TSearchRec;
  ok:Boolean;
begin
  ok:=False;
  if findFirst(Dir+'\*.*', faAnyFile,SR) = 0 then begin
    repeat
      if (sr.Name[1] <> '.') and (sr.Attr and faDirectory > 0) then begin
       // ShowMessage(sr.name);
        ok:=True;

        break;
      end;
    until FindNext(Sr) <> 0;
  end;
  FindClose(sr);
  result:=ok;
end;

procedure TForm2.VerzBaum(Dir: String; aTV:TTreeView; aItem: TTreeNode);
var
  SR: TSearchRec;
  NeuerNode: TTreeNode;
begin
  aTV.Items.BeginUpdate;
  if findFirst(Dir+'\*.*', faAnyFile,SR) = 0 then
    repeat
      if (sr.Name[1] <> '.') and (sr.Attr and faDirectory > 0) then begin
          NeuerNode := aTV.Items.AddChild(aItem,SR.Name);

          NeuerNode.HasChildren := GetAnderDir(dir + '\' +NeuerNode.text);
      end;
    until FindNext(SR) <> 0;
  FindClose(SR);
  aTV.Items.EndUpdate;
// aItem.HAsChildren := aItem.count > 0;
end;
Diese code durch sucht einmal das hauptverzeichnis dann schaut die procedur GetAnderDir in das nächte verzeichnis rein um so diese + zu setzten wenn es unterverzeichnise gibt.. ich hoffe ihr könnte mir folgen.....

vielen dank für die hilfe !

Edit: noch was vergeesen:
du schreibst immer: if (SR.Name <> '.') and (SR.Name <> '..') Then
aber es würde reichen if sr.name[1] <> '.' then
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat