Hola a todos...
Estos días he estado mirándo el código fuente de un programa de chat que he encontrado al mirar los ejemplos de las indy y me he encontrado con un pequeño problemilla.
Cuando el programa cliente ejecuta el temporizador para descargar los mensajes del chat (IdTCPClient1.ReadLn('', 5)

éste se queda colgado hasta
que encuentra un mensaje y no me deja hacer nada.
Código:
procedure TForm1.Timer1Timer(Sender: TObject);
var
Com, Msg : String;
begin
if not IdTcpClient1.Connected then
exit;
Msg := IdTCPClient1.ReadLn('', 5);
if Msg<>'' then
begin
if Msg[1] <> '@' then
begin
{ Not a system command }
memLines.Lines.Add(Msg);
end
else
begin
{ System command }
Com := UpperCase(Trim(Copy(Msg, 2, Pos(':', Msg) -2)));
Msg := UpperCase(Trim(Copy(Msg, Pos(':', Msg) +1, Length(Msg))));
if Com = 'CLIENTS' then
lbClients.Items.CommaText := Msg;
end;
end;
end;
Este es el fragmento de código que me da problemas. El temporizador se ejecuta cada medio segundo