Einzelnen Beitrag anzeigen

momo54321

Registriert seit: 18. Mär 2012
16 Beiträge
 
#17

AW: Rekursiver Aufruf von FTPFindFirstFile

  Alt 18. Mär 2012, 14:40
das angeben von nil geht allerdings auch nur wenn man im proceduren kopf das var entfernt.
nil hatte ich ja schon ausprobiert und es ging nicht, siehe Fehler:
[DCC Error] Unit1.pas(1837): E2033 Types of actual and formal var parameters must be identical


also, so funktioniert der kram zumindest bei mir nun:
Delphi-Quellcode:
procedure ListDir(dir: String; const tv: TTreeView; tn: TTreeNode);
var
  itm: TIdFTPListItems;
  i: Integer;
  node: TTreeNode;
  tmp: string;
begin
  Form1.ftp.ChangeDir(dir);
  Form1.ftp.List;
  itm := Form1.ftp.DirectoryListing;
  for i := 0 to itm.count-1 do begin
  //showmessage(InttoStr(itm.count-1)); // Showmessage
    if itm.Items[i].ItemType = ditDirectory then begin
      if itm.Items[i].Filename <> '.then begin
      node := tv.Items.AddChild(tn, itm.Items[i].Filename);
      //showmessage(itm.Items[i].Filename + ' / L: ' + IntToStr(Length(itm.Items[i].Filename))); // Showmessage
      listdir(itm.items[i].filename, tv, node);
      Form1.ftp.ChangeDirUp;
      Form1.ftp.list;
      itm := Form1.ftp.DirectoryListing;
      end;
    end
    else
      form1.treeview1.Items.addChild(tn, itm.Items[i].filename+' ['+inttostr(itm.items[i].size)+']');
  end;
end;

procedure TForm1.PngSpeedButton1Click(Sender: TObject);
begin

FTP.Host := FTP.Text;
FTP.Port := StrToInt(FTPport.Text);
FTP.Username := FTPlogin.Text;
FTP.Password := FTPpw.Text;

FTP.Connect;

ListDir('/public_html/install2/', Treeview1, nil);

FTP.Disconnect;
end;
  Mit Zitat antworten Zitat