Try doing this
procedure FtpProgress(Sender: TObject; Count: Int64; var Abort: Boolean);
procedure TForm2.FormCreate(Sender: TObject);
var
FTP: TFtpClient;
begin
FTP.OnProgress64 := FtpProgress;
end;
procedure TForm2.FtpProgress(Sender: TObject; Count: Int64;
var Abort: Boolean);
begin
I've writen an FTP client that previously used OnFtpProgress, and can
confirm that it's called a tremendous amount of times, and in my case
caused my client application to hit 100% CPU as a result. The way I've
implemented it in the past is to create another FTP Client class derived
from ICS