Du könntest natürlich die Events beim GetSize abhängen (z.B.
FTP.DownloadWorkBegin:=nil;
) und beim get wieder anhängen (z.B.
FTP.DownloadWorkBegin:=FTPDownloadWorkBegin;
)
oder über eine Variable die ausgabe steuern (beim GetSize einen Boolean auf True setzen und in den Events
if x then Exit;
).
AWorkCountMax hat dir nicht gefallen?
Delphi-Quellcode:
//******************************************************************************
// FTP Download with Progressbar *
//******************************************************************************
procedure TForm1.Button20Click(Sender: TObject);
begin
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;
// wieso Free? (sei froh, daß dir TComponent die Form-Variable FTPDownload "zufällig" auf nil setzt, wenn sie published ist)
Exit;
End;
end;
procedure TForm1.FTPDownloadWorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Int64);
begin
with FTPProgress
do
begin
Max := AWorkCountMax;
Position := 0;
Visible := true;
end;
end;
procedure TForm1.FTPDownloadWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64);
begin
with FTPProgress
do
Position := AWorkCount;
end;
procedure TForm1.FTPDownloadWorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
with FTPProgress
do
Visible := false;
end;