Ver Mensaje Individual
  #7  
Antiguo 11-02-2011
breadagast breadagast is offline
Miembro
 
Registrado: nov 2006
Posts: 10
Reputación: 0
breadagast Va por buen camino
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.
Responder Con Cita