Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-11-2003
Avatar de diegofhernando
diegofhernando diegofhernando is offline
Miembro
 
Registrado: may 2003
Ubicación: Locombia papá!
Posts: 267
Poder: 21
diegofhernando Va por buen camino
Que problema con las INDY!!!!!

Que tal.... me imagino que el problema que tengo lo han tenido algunos de ustedes, es por eso que creo que me puedan aportar una solucion... Estoy usando los componentes TCP de las Indy, cuando desde un cliente envio una respuesta al servidor este debe mostrar un form, el codigo lo pongo en el Execute del TCPServer pero desastrosamente el form aparece a medias, y no solo eso, si envio un stream que deba ser interpretado en otro form sucede lo mismo... y ya llevo 14 con este problema y nada, si de casualidad alguno tiene la solucion por favor... o si saben donde encontrarla igual...

Salu2
__________________
Diego. Colombia es pasión.
Responder Con Cita
  #2  
Antiguo 12-11-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

No entiendo que significa eso de "el form aparece a medias?", pero parece un problema gráfico, no de las Indy. Porque no explicas bien cual es tu problema, y quizas algun trozo de código.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 12-11-2003
Avatar de diegofhernando
diegofhernando diegofhernando is offline
Miembro
 
Registrado: may 2003
Ubicación: Locombia papá!
Posts: 267
Poder: 21
diegofhernando Va por buen camino
muy bien...

procedure TForm1.idTCPSocketServer(//parametros);
var
algo: string;
begin

algo:= AThread.Connection.ReadLn; // aqui leo la respuesta
// del cliente.

if algo = 'mostrar' then
begin
form1.hide;
form2.show; // aqui es donde no funciona.... se congela
// el form2, solo aparece el cuadrillo donde
// deberia estar.
end;

end;


pero si pongo el mismo codigo en un timer funciona...



procedure TForm1.idTCPSocketServer(//parametros);
var
algo: string;
begin

algo:= AThread.Connection.ReadLn; // aqui leo la respuesta
// del cliente.

if algo = 'mostrar' then
begin
timer1.enabled:= true;
end;

end;

cuando se ejecuta el evento onTimer que tiene Form2.Show; funciona perfectamente. Es decir que mientras este dentro del envento Execute del Server no puedo hacer nada con otros Forms.
__________________
Diego. Colombia es pasión.
Responder Con Cita
  #4  
Antiguo 13-11-2003
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 21
Julià T. Va por buen camino
supongo que por lo que indicas, mientras está "trabajando" en la connexion, el form parace que se quede colgado (pasa siempre), para ello puedes colocar el componente TidAntefreezee (Indy Misc), con lo que supongo que solucionarás el problema.
Responder Con Cita
  #5  
Antiguo 13-11-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Lo que ocurre es que estas invocando el método Show desde el hilo de ejecución de la conexión (Indy es un Servidor Multi-Hilos, y debieras hacerlo desde el hilo principal de la aplicación). Por ello es que, al terminar o suspenderse la ejecución del hilo, la forma queda congelada.

Para ello, podes valerte del método Synchronize del hilo.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 13-11-2003
Avatar de diegofhernando
diegofhernando diegofhernando is offline
Miembro
 
Registrado: may 2003
Ubicación: Locombia papá!
Posts: 267
Poder: 21
diegofhernando Va por buen camino
Esta bien gracias por sus comentarios voy a probar lo que me dices, lo del AntiFreeze ya lo probe pero no funcionó...

Salu2
__________________
Diego. Colombia es pasión.
Responder Con Cita
  #7  
Antiguo 13-11-2003
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 21
Julià T. Va por buen camino
No me fijé que era dentro de un thread, para ello, como dice jachguate, dentro del thread utiliza el sychronize para cualquier acceso a componentes que no incluyas en el thread
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


La franja horaria es GMT +2. Ahora son las 09:11:48.


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