AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem beim Ordnerwechsel mit dem FTP Client
Thema durchsuchen
Ansicht
Themen-Optionen

Problem beim Ordnerwechsel mit dem FTP Client

Ein Thema von TheGame1492 · begonnen am 4. Aug 2004 · letzter Beitrag vom 4. Aug 2004
Antwort Antwort
Benutzerbild von TheGame1492
TheGame1492

Registriert seit: 31. Jul 2004
Ort: Berlin
84 Beiträge
 
Delphi XE2 Professional
 
#1

Problem beim Ordnerwechsel mit dem FTP Client

  Alt 4. Aug 2004, 08:28
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
  Mit Zitat antworten Zitat
rantanplan99
(Gast)

n/a Beiträge
 
#2

Re: Problem beim Ordnerwechsel mit dem FTP Client

  Alt 4. Aug 2004, 08:47
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);

      exit; // HIER BITTE EIN EXIT; EINFÜGEN

      end;
    end;
end;
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

Deshalb füge ein 'exit;' nach dem neuladen des Verzeichnis ein um deine for-Schleife zu verlassen, und es sollte dann klappen
  Mit Zitat antworten Zitat
Benutzerbild von TheGame1492
TheGame1492

Registriert seit: 31. Jul 2004
Ort: Berlin
84 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Problem beim Ordnerwechsel mit dem FTP Client

  Alt 4. Aug 2004, 10:15
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
  Mit Zitat antworten Zitat
rantanplan99
(Gast)

n/a Beiträge
 
#4

Re: Problem beim Ordnerwechsel mit dem FTP Client

  Alt 4. Aug 2004, 10:22
TListBox hat ein Event onDblClick. siehe auch in der Delphi Online-Hilfe.
  Mit Zitat antworten Zitat
Benedikt
(Gast)

n/a Beiträge
 
#5

Re: Problem beim Ordnerwechsel mit dem FTP Client

  Alt 4. Aug 2004, 10:42
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;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz