PDA

Ver la Versión Completa : TIdPeerThread indy9 a TIdContext indy10


alejobog
17-01-2018, 14:27:32
Buen día muchachos.

normalmente no creo foros nuevos puesto que casi todo lo he podido solucionar con foros ya abiertos, pero en esta ocasión presento un problema muy particular que no he podido encontrar en la red.

tenemos en mi empresa una aplicación desarrollada con delphi7 (indy9), pero se considero de una vez por todas migrar al XE tokio, esto nos a creado una carga de trabajo demasiada alta ya que el programa maneja mas de 52.000 lineas de código y he tenido que afrontar el tema del UNICODE y del indy 10.

en esta ocasion requiero de su conocimiento para saber como reemplar esto.

indy 9

procedure TTraceForm.IdTCPServer1Disconnect(AThread: TIdPeerThread);
begin
try
AThread.Terminate;
if ( AThread.ReturnValue >= 1 ) and ( AThread.ReturnValue <= MaxCtrlTrns ) then
try
QueueBlock.Enter;
TCPPeerThreads[ AThread.ReturnValue ] := Nil;
finally
QueueBlock.Leave;
end;
except
on E : Exception do begin
WriteLogSwitch( 'E', 'Error TTraceForm.IdTCPServer1Disconnect(' + E.Message + ')' );
end;
end;
end;

esto en indy10 cambio

procedure TTraceForm.IdTCPServer1Disconnect(AThread: TIdContext);
begin
try
AThread.Connection.Disconnect;
if ( AThread.ReturnValue >= 1 ) and ( AThread.ReturnValue <= MaxCtrlTrns ) then
try
QueueBlock.Enter;
TCPPeerContext[ AThread.ReturnValue ] := Nil;
finally
QueueBlock.Leave;
end;
except
on E : Exception do begin
WriteLogSwitch( 'E', 'Error TTraceForm.IdTCPServer1Disconnect(' + E.Message + ')' );
end;
end;
end;

en TIdContext no existe ReturnValue y no se como reeemplazar.

ecfisa
17-01-2018, 14:50:02
Hola alejobog.

Por favor cuando incluyas código en tus mensajes, utiliza las etiquetas correspondientes de este modo:

https://s18.postimg.org/f5kq2tluh/TAGs.jpg

Muchas gracias por tu colaboración :)

Nota: ( ya las agregué a tu mensaje )

alejobog
17-01-2018, 14:57:13
Muchas gracias a ti, lección aprendida