![]() |
Problem beim Ordnerwechsel mit dem FTP Client
also ich hab folgendes (billig) problem
ich will mit meinem ftp client in verschiedene ordner wechseln, der erste ordner wechsel klappt problemlos, aber wenn ich denn in den unterordner rein will, kommt folgende meldung: Listenindex überschreitet das Maximum hier der code:
Delphi-Quellcode:
procedure TFTP_Inhalt.Button_GoInDirClick(Sender: TObject);
var i: integer; selectFolder: string; begin for i := 0 to ListBox_FTPINHALT.Items.Count - 1 do begin if ListBox_FTPINHALT.Selected[i] then begin selectFolder := IdFTP1.DirectoryListing.Items[i].Filename; IdFTP1.ChangeDir(selectFolder); FTP_Inhalt1:=TStringList.Create; ListBox_FTPINHALT.items.Clear; IdFTP1.List(FTP_Inhalt1); ListBox_FTPINHALT.Items.Assign(FTP_Inhalt1); end; end; end; vllt kann mir einer helfen :roll: |
Re: Problem beim Ordnerwechsel mit dem FTP Client
Delphi-Quellcode:
Also wenn du in das verzeichnis gewechselt bist, überschreibst du ja den Inhalt der ListBox_FTPINHALT, allerdings wird der alte Inhalt davon ja für die Schleife benötigt, und so kann es sein, dass wenn das vorherige Verzeichnis mehr Einträge enthält als dass in das du gewechselt bist, deine Schleife auf Einträge (der ListBox) zugreiffen will, die in deinem neuen Verzeichnis nicht mehr existieren --> Listenindex überschreitet das Maximum
procedure TFTP_Inhalt.Button_GoInDirClick(Sender: TObject);
var i: integer; selectFolder: string; begin for i := 0 to ListBox_FTPINHALT.Items.Count - 1 do begin if ListBox_FTPINHALT.Selected[i] then begin selectFolder := IdFTP1.DirectoryListing.Items[i].Filename; IdFTP1.ChangeDir(selectFolder); FTP_Inhalt1:=TStringList.Create; ListBox_FTPINHALT.items.Clear; IdFTP1.List(FTP_Inhalt1); ListBox_FTPINHALT.Items.Assign(FTP_Inhalt1); exit; // HIER BITTE EIN EXIT; EINFÜGEN end; end; end; Deshalb füge ein 'exit;' nach dem neuladen des Verzeichnis ein um deine for-Schleife zu verlassen, und es sollte dann klappen |
Re: Problem beim Ordnerwechsel mit dem FTP Client
ah geil thx :)
und wie würde das funktionieren, wenn ich in die ordner kommen will durch einen doppelklick mit der maus? weil das mit dem extra button ist ja etwas doof ;) |
Re: Problem beim Ordnerwechsel mit dem FTP Client
TListBox hat ein Event onDblClick. siehe auch in der Delphi Online-Hilfe.
|
Re: Problem beim Ordnerwechsel mit dem FTP Client
Hi,
warum überhaupt der Aufwand mit der Schleife? In deinem Falle ist ja eh nur ein Item selektiert bzw. kann du auch nur in einen Ordner reinwechseln, so dass das abfragen von ItemIndex wesentlich einfacher wäre:
Delphi-Quellcode:
//OnDblClick-Ereignis der Listbox
procedure TForm1.ListBox_FTPINHALTDblClick(Sender: TObject); begin //Überprüfen ob ein Item ausgewählt ist if (ListBox_FTPINHALT.ItemIndex<>-1) then begin //Ist das ausgewählte Item ein Ordner (benötigt: uses IdFTPList) if (IdFTP1.DirectoryListing.Items[ListBox_FTPINHALT.ItemIndex].ItemType=ditDirectory) then begin //Verzeichnis wechseln IdFTP1.ChangeDir(IdFTP1.DirectoryListing.Items[ListBox_FTPINHALT.ItemIndex].FileName); //Listbox leeren und füllen ListBox_FTPINHALT.Items.Clear; IdFTP1.List(ListBox_FTPINHALT.Items); end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz