Einzelnen Beitrag anzeigen

mimi

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

Re: Order + Dateien in einer VirtualTreeView anzeigen

  Alt 18. Okt 2006, 15:33
ja ich hatte nach findfirst + treeview gesucht aber nichts passendes gefunden dein code habe ich auch schongefunden woanders und mit anderen namen.
ich dachte das würde mich auf eine idee bringen wenn ich ihn mir ansehe und habe meine procedure leicht geändert:
Delphi-Quellcode:
procedure TPlaylisten.LoadDir(dir:String; var t:Boolean);
var
  SearchRec: TSearchRec;
  DirTemp: String;
begin
  if (Assigned(onPlaylisteAdd)) and (GetFilesInDirectory(dir+'\',stdext,true)) then
    onPlaylisteAdd(dir,GetPrvDir(dir),True);

  if dir[Length(dir)] <> '\then dir := dir + '\';
  if FindFirst(dir + '*.*', faDirectory, SearchRec) = 0 then begin
    repeat
      if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then begin
        if (SearchRec.Attr and faDirectory > 0)and (GetFilesInDirectory(dir+SearchRec.Name+'\',stdext,true)) then begin
          if Assigned(onplaylistnewadd) then onplaylistnewadd(1);
          DirTemp :=dir;
          dir:=dir + SearchRec.name;
          t:=True;
          LoadDir(dir,t);
          dir := DirTemp;
          onPlaylistNewAdd(2);
        end;
      end
      else begin
        if (SearchRec.Name[1] <> '.') and (Assigned(onadditem) and (Pos(uppercase(ExtractFileExt(SearchRec.name)),stdext) >0)) {and (pos(uppercase(ExtractFileExt(searchrec.name)),playlistext) > 0)} then
          onAddItem(dir+SearchRec.Name,SearchRec.Name);
        end;

        if SearchRec.Name[1] <> '.then begin
          if (Assigned(onPlaylisteAdd)) and (pos(uppercase(ExtractFileExt(searchRec.name)),playlistext) > 0) then begin
            onPlaylistNewAdd(1);
            t:=False;
            DirTemp :=dir;
            dir:=dir + SearchRec.name;
            LoadFile(dir,nil,True);
            onPlaylistNewAdd(2);
            dir := DirTemp;
          end
      // else begin

        end;
    until FindNext(SearchRec) <> 0;
    FindClose(SearchRec);
  end;
  if Assigned(onPlaylistNewAdd) then onPlaylistNewAdd(2);
procedure TForm2.PlaylistNewAdd(t:Integer);
begin
  if t = 1 then backupparent:=GetParentNode(parent);
  if t = 2 then parent:=backupparent;
end; // PlaylistNewAdd

procedure TForm2.PlaylisteAdd(FileName:TFileName; Alias:String;ok:Boolean);
var
  item:TPlaylistItem1;
begin
  if ok = True then begin
    VT.NodeDataSize:=SizeOf(Titem);
    item:=TPlaylistItem1.Create;
    item.alias:=alias;item.FileName:=FileName;
    parent:=AddVSTObject(vt,parent,item);
  end;
end; // PlaylisteAdd
ich dachte wenn ich mir den parent sicherer und dann wieder zurück gebe müste es eigetnlich doch gehen und ich habe bei playlisteAdd ja noch eine variable hinzugefügt leider geht das aber trozdem immer noch nicht hier mal ein bild:

jetzt wird alle doppelt angezeigt aber leider werden keine verzeichnise mehr angezeigt !
Miniaturansicht angehängter Grafiken
unbenannt_138.jpg  
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat