Einzelnen Beitrag anzeigen

Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#17

AW: IdFTP + progressbar wie ?!

  Alt 6. Nov 2013, 13:43
Hallo,

der Beitrag ist zwar schon etwas älter, aber ich hätte hierzu mal noch eine Frage...

Der Source funktioniert bei mir nur wie folgt:

Delphi-Quellcode:
//******************************************************************************
// FTP Download with Progressbar *
//******************************************************************************

procedure TForm1.Button20Click(Sender: TObject);

begin

  //Get File Size
  Try
    FTP.Host := 'Server';
    FTP.Username := 'User';
    FTP.Password := 'Password';
    FTP.Connect;
    FTP.ChangeDir('/Folder1/Folder2/');
    giFileSize := FTP.Size('setup.exe');
    FTP.Disconnect;
  Except
    FTP.Free;
    Exit;
  End;

  //Download File
  Try
    FTPDownload.Host := 'Server';
    FTPDownload.Username := 'User';
    FTPDownload.Password := 'Password';
    FTPDownload.Connect;
    FTPDownload.ChangeDir('/Folder1/Folder2/');
    FTPDownload.Get('setup.exe', 'C:\Temp\setup.exe', True);
    FTPDownload.Disconnect;
  Except
    FTPDownload.Free;
    Exit;
  End;

end;

procedure TForm1.FTPDownloadWorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Int64);
begin
  with FTPProgress do
  begin
    Max := giFileSize;
    Position := 0;
    Visible := true;
  end;
end;

procedure TForm1.FTPDownloadWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64);
begin
  with FTPProgress do
    Position := Integer(AWorkCount);
end;

procedure TForm1.FTPDownloadWorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
  with FTPProgress do
    Visible := false;
end;
Wie man sieht verwende ich im Moment zwei FTP Komponenten.
Dies liegt daran da ich die File Größe erst ermittle und dann über die zweite den Download Starte.
Ich habe erst versucht beides über eine FTP Komponente zu machen, aber da hat er mir dann beim File Size ermitteln die OnWork / OnBeforeWork Aktionen ausgeführt.

Meine Frage daher, kann man es steuern wann er die OnWork / OnBeforeWork Ereignisse aufruft oder nicht?
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat