Ya está hecho gracias a los apuntes de Neftali.
Desde el evento "OnDataChannelCreate" del componente cliente de FTP (TidFtp) ponemos lo siguiente:
Código:
procedure TDMFtp.IdFTP1DataChannelCreate(ASender: TObject;
ADataChannel: TIdTCPConnection);
var
LThrottle: TIdInterceptThrottler;
bitpsecond: integer;
begin
bitpsecond := 30; //KB
LThrottle := TIdInterceptThrottler.Create(ADataChannel);
ADataChannel.IOHandler.Intercept := LThrottle;
LThrottle.BitsPerSec := bitpsecond * 8192;
end;
procedure TDMFtp.IdFTP1DataChannelDestroy(ASender: TObject;
ADataChannel: TIdTCPConnection);
begin
with ADataChannel.IOHandler do
begin
Intercept.Free;
Intercept := nil;
end;
end;
bitpsecond es una variable que tengo declarada fuera del procedimiento para poder cambiar la velocidad.
La velocidad se establece por cada conexión que realiza el componente.
Un saludo y espero que os sirva a los que lo necesiteis.