Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Chat Casero (https://www.clubdelphi.com/foros/showthread.php?t=75606)

rruffino 06-09-2011 20:09:13

Chat Casero
 
Hola gente, pido disculpas si le erro en donde coloco el hilo, pero este me parece apropiado. Les comento, tengo un sistema en Delphi 7 y Firebird 2.1. El sistema trabaja en red y todos conectan a la misma base de datos. El tema es que ahora me pidieron hacer una especie de mensajeria interna y que todo quede registrado. Se me ocurrio tener una tabla en donde vaya guardando quien genera el mensaje, quien lo tiene que recibir y el contenido en si. De esta manera con un timer podria en un lapso de tiempo buscar por ejemplo aquellos registros que han sido enviados para mi. El tema es poder crear formularios automaticamente en tiempo de ejecucion y como referenciarlos cuando quiera enviar mensajes a un usuario en particular. Ya he logrado ver quienes estan logueados al sistema en tiempo de ejecución, pero necesito que pueda crear un formulario en caso de querer intercambiar mensajes con ese usuario. Espero haberme explicado.
Gracias!!!:confused:

Caral 07-09-2011 03:36:08

Hola
Yo uso un sistema de mensajería interno como el que dices, pero no entiendo la necesidad de crear el form en tiempo de ejecución ?.
Saludos

rruffino 07-09-2011 12:55:49

Hola!! Gracias por tu respuesta. El tema es que no se cuantos usuarios puedo tener conectados al mismo tiempo. Yo pensaba en conversaciones en formularios distintos, no se si me explico.
Gracias nuevamente.

Casimiro Noteví 07-09-2011 13:13:44

Cita:

Empezado por rruffino (Mensaje 411114)
no se si me explico.

No, no te explicas, amigo :)

Se supone que tienes una tabla de usuarios y que cuando alguien entra al programa selecciona su usuario (y password, por ejemplo).
Ahora necesitas una tabla para la mensajería, que muy básicamente puede ser más o menos así:
Código SQL [-]
tbMensajes (
id  (código interno correlativo)
fechahora  (fecha y hora del mensaje)
de        (el usuario que lo envía, su código)
para      (el usuario al que va dirigido, su código)
mensaje (el texto del mensaje)
leido      (campo para indicar si ya fue leido el mensaje por el destinatario)

Cuando un usuario quiere enviar un mensaje, se abre un form (normal y corriente) y se guarda en la tabla lo que escriba (sólo se le preguntaría por el usuario al que va destinado y el mensaje que quiere enviar)

Cuando un usuario se conecta, se comprueba si hay algún mensaje para él,
Código Delphi [-]
select * from tbmensajes where para= :codigousuario and leido=false

Además se puede poner un timer para que realice ese mismo proceso cada x minutos.

Así de simple :)

Casimiro Noteví 07-09-2011 13:29:02

Bueno, olvida todo lo que he escrito, tú quieres un chat en tiempo real, no una mensajería.
:o:o:o

rruffino 07-09-2011 13:29:19

Gracias por la respuesta!!
En realidad en un principio lo pense como me estas poniendo aca. El tema es, yo tengo en la tabla varios usuarios conectados al sistema al mismo tiempo, yo quiero entablar una conversación con un solo usuario en un solo formulario, y asi poder tener conversaciones al estilo msn. Si bien los mensajes los obtengo como tu dices. Espero haber sido mas claro.
Gracias!!!


La franja horaria es GMT +2. Ahora son las 23:21:05.

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