Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-05-2008
SindyL34 SindyL34 is offline
Miembro
 
Registrado: oct 2007
Posts: 13
Poder: 0
SindyL34 Va por buen camino
La novata inutil sigue (problema con el cliente)

bueno eh de aki de nuevo lamento las molestias, el problema que tengo es con el eejemplo del chat indy

luego de hacer modificaciones checarlo y estudiarlo no eh podido quitar cierto detallito o mas bien arreglar un problema con el programa cliente

se traba

al momento de dar clic en la barra donde se pondra el texto para enviar al chat (me refiero al programa cliente) se congela. y son mas que un par de lineas que no puedo entender por que se congela o mas bien una linea, la linea donde el tpcliente envia la linea de texto

Cita:

if key = #13 then
begin
IdTCPClient1.WriteLn(edMessage.Text);
edMessage.Text := '';
end;
hay otra manera de ke el cliente envie texto?

Última edición por SindyL34 fecha: 11-05-2008 a las 03:25:36.
Responder Con Cita
  #2  
Antiguo 11-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Cool

Hola SindyL34

Creo que debes poner un titulo más adecuado para tu mensaje... de lo contrario puede que no lo tomen en cuenta ...

Además, deberias utilizar las etiquetas, en donde el codigo que señalas quedaria así


Código Delphi [-]
if key = #13 then
begin
       IdTCPClient1.WriteLn(edMessage.Text)
       edMessage.Text := '';
end;

Salu2
__________________
BlueSteel
Responder Con Cita
  #3  
Antiguo 11-05-2008
SindyL34 SindyL34 is offline
Miembro
 
Registrado: oct 2007
Posts: 13
Poder: 0
SindyL34 Va por buen camino
jeje gracias, puse una etiqueta de citar al codigo, este sobre el nombre del tema ya no lo puedo cambiar pero lo tomare en cuenta para la proxima vez, gracias
Responder Con Cita
  #4  
Antiguo 12-05-2008
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por SindyL34 Ver Mensaje
al momento de dar clic en la barra donde se pondra el texto para enviar al chat (me refiero al programa cliente) se congela. y son mas que un par de lineas que no puedo entender por que se congela o mas bien una linea, la linea donde el tpcliente envia la linea de texto
Dos preguntillas para entenderlo:

¿Esa barra, es un TEdit, verdad? ¿Y el código que pones se ejecuta al pulsar con el ratón sobre ese TEdit?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #5  
Antiguo 13-05-2008
SindyL34 SindyL34 is offline
Miembro
 
Registrado: oct 2007
Posts: 13
Poder: 0
SindyL34 Va por buen camino
el codigo que presente es el codigo que el ejemplo del chat indy muestra, no hay boton alguno en el cliente solo en que conecta, pero si se conecta el servidor puede enviar mensages al cliente y el cliente los recive

es cuando el cliente quiere enviar (es decir cuando se ejecuta el codigo que di, segun yo solo cuando se da enter envia el texto) cuando se congela, es mas no se teclea texto alguno y pasa esto
Responder Con Cita
  #6  
Antiguo 15-05-2008
SindyL34 SindyL34 is offline
Miembro
 
Registrado: oct 2007
Posts: 13
Poder: 0
SindyL34 Va por buen camino
sorry de nuevo oyep ya lo cheque de nuevo y ya se donde esta el error es en un timer pero no se por que, eh tratado de cambiarlo y obtengo el mismo resultado, el programa se congela cuando llega al tiempo establecido por el timer.

mi pregunta es

es posible recibir mensages sin el timer o sin que se trabe T_T
Cita:
procedure TForm1.Timer1Timer(Sender: TObject);
var
Msg : String;
begin
if not IdTcpClient1.Connected then // estas dos lineas no las puedo quitar por que no
exit; //corre el programa

Msg := IdTCPClient1.ReadLn; //se lee lo que se recibe
if msg <> '' then
begin
memLines.Lines.Add(Msg);
end;
end;
Responder Con Cita
  #7  
Antiguo 16-05-2008
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Pues menos mal que encontraste dónde estába el problema, porque yo no tenía ni idea .

Respecto al Timer, hay que tener cuidado para que no se autobloquée. Por un lado comprueba cada cuánto tiempo se produce la alarma (evento), ya que si es demasiado rápido no le dará tiempo a dar la respuesta antes de que tenga que ejecutarse otra vez. Creo que había un método o propiedad que permitía "parar el reloj" y luego ponerlo otra vez en marcha.

El problema también puede estar aquí:
Código Delphi [-]
Msg := IdTCPClient1.ReadLn; //se lee lo que se recibe
if msg <> '' then ...
¿No hay otra forma de saber si hay mensajes pendientes? ¿O un evento en TCPClient que se ejecute cuando se reciban?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #8  
Antiguo 19-05-2008
SindyL34 SindyL34 is offline
Miembro
 
Registrado: oct 2007
Posts: 13
Poder: 0
SindyL34 Va por buen camino
bueno este s el codigo del cliente en el evento onconnect

Cita:
procedure TForm1.IdTCPClient1Connected(Sender: TObject);
begin
IdTCPClient1.WriteLn(edUserName.Text);
end;

el cliente no tiene tantos eventos segun lo que vi el server tiene un evento llamado on execute que tiene este codigo

Cita:
{ Get the text sent from the client }
Msg := AThread.Connection.ReadLn;

intente llamar a un evento semejante al que tiene el server pero no se como usarlos, o mas bien al intentarlo no do ningun resultado, los eventos son
on status
onwork
onworkbegin
onworkend

intente solo poniendo que recibiera pero simplemente no hace nada, si cambio el tiempo de relog a muy alto pues no recibe nada y siempre se bloquea cuando se ejecuta
Responder Con Cita
  #9  
Antiguo 29-05-2008
SindyL34 SindyL34 is offline
Miembro
 
Registrado: oct 2007
Posts: 13
Poder: 0
SindyL34 Va por buen camino
Smile

hola ya por mas que le busque a lo mas que pude llegar era a ke se trabara por pequeños lapsos de tiempo, esto cambiando el lapso del timer a 3000 (ni mas ni menos por que no funcionaba por que no lo se XD) y cambiando
Cita:
if IdTcpClient1.Connected then
begin
///codigo
end;
despues buscando mas encontre el componente antifreze que soluciono todo a cualquiera que le falle el chat solo agregue este componente al servidor y al cliente y no tendra problemas


gracoas
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Novata inutil necesita ayuda con sockets SindyL34 Servers 15 22-11-2007 00:38:04
JVCL sigue el problema de instalacion.... JULIOCTORRESG Varios 5 23-03-2007 18:15:24
Cliente FTP - Problema! adcoma Internet 1 12-04-2006 19:52:12
Novata Nita Conexión con bases de datos 3 04-04-2006 00:19:36
novata en mysql kryna MySQL 5 14-05-2005 03:42:51


La franja horaria es GMT +2. Ahora son las 14:11:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi