(*Em seguida, num método qualquer (p.e. um clique de um botão) coloque o seguinte: *)
procedure TForm1.Button1Click(Sender: TObject); begin try if IdFTP1.Connected then
IdFTP1.Disconnect;
IdFTP1.Connect();
IdFTP1.List(ListBox1.Items,'*.exe',false);
if ListBox1.Items.Count = 0 then begin
Abort; end;
for indice:= 0 to ListBox1.Items.Count -1 do begin try
ListBox1.Selected[indice] := true;
bytesToTransfer := IdFTP1.Size(ListBox1.Items.Strings[indice]);
IdFTP1.Get(ListBox1.Items.Strings[indice],'' + ListBox1.Items.Strings[indice],true); except on e:exception do
showmessage(e.Message); end; end;
finally
IdFTP1.Disconnect; end; end;
// no eventoWorkBegin do idFTP:
procedure TForm1.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer); begin
Gauge1.Progress := 0; if AWorkCountMax > 0 then
Gauge1.MaxValue := AWorkCountMax else
Gauge1.MaxValue := bytesToTransfer; end;