Ver Mensaje Individual
  #2  
Antiguo 31-08-2011
maxinitto maxinitto is offline
Miembro
 
Registrado: may 2010
Posts: 45
Reputación: 0
maxinitto Va por buen camino
bueno veo que nadie contesta, he pensado que puede ser por falta de informacion, bueno aquie adjunto el codigo del evento onread de mi socket, la conexion es inversa...

Código Delphi [-]
procedure TForm4.c3ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
  Buffer: array [0..9999] of Char;
  IncommingLen, RecievedLen: integer;
  PesoDeArchivo, PartFileRec : Int64;
begin

  if RecibiendoArchivo then
  begin
    PesoDeArchivo := StrToInt64(FileSizes) div 1024;
    Form4.PB_ProgresoArchivo.Max := PesoDeArchivo;

    Form4.Timer1.Enabled := True;

    IncommingLen := Socket.ReceiveLength;;

    while IncommingLen > 0 do
    begin
       RecievedLen := socket.ReceiveBuf(Buffer, Sizeof(Buffer));
       PartFileRec := RecievedLen div 1024;

  
       Form4.PB_ProgresoArchivo.Position := Form4.PB_ProgresoArchivo.Position + PartFileRec;
       Form4.L_ProgresoKB.Caption := IntToStr(Form4.PB_ProgresoArchivo.Position) + ' KB / ' + IntToStr(Form4.PB_ProgresoArchivo.Max) + ' KB';

    if PartFileRec <= 0 then
       Break
    else
      Form4.FStream.Write(Buffer, RecievedLen);


    if Form4.FStream.Size >= StrToInt64(FileSizes) then
    begin

       Form4.FStream.Free;
       Form4.Timer1.Enabled := False;
       Form4.TimeTaken := 0;
       RecibiendoArchivo := False;
       ActualizarYmostrar(GetFileIcon(Form4.E_RutaLocal.Text +        Form2.NombreArchivoRecibido));
       Break;                                                                        
    end;
  end;
  end;
end;

si este codigo lo meto en otro procedimiento declarado por mi, no puedo hacer referencia ala variable socket, es decir , no sabria que socket me esta enviando las partes de archivo...¿como lo puedo hacer para meterlo en un hilo?, lo quiero meter en el hilo por que la aplicacion se me cuelga y se me recupera constantemente hasta que llega el archivo.
Responder Con Cita