| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
rockfavc Cmdr


Registrado: 23 Ago 2002Mensajes: 138Ubicación: Colombia (Medellín)
|
Publicado: Mar 04 Nov, 2003 8:17 pm Asunto: Servidor DDE |
|
|
Hola mi gente! espero que eten bien y preparandose para Navidad...
Necesito de su ayuda: como puedo construir un servidor DDE y un CLiente DDE que se comunique con el primero?
Donde encuentro un ejemplillo o documentacion, he estado leyendo las ayudas del Builder pero no lo veo claro.
Muchas gracias por su colaboracion.
Saludos |
|
| Volver arriba |
|
 |
rockfavc Cmdr


Registrado: 23 Ago 2002Mensajes: 138Ubicación: Colombia (Medellín)
|
Publicado: Mie 05 Nov, 2003 6:22 pm Asunto: |
|
|
Que tal muchachos!
Investigando me encontre con este link esta bien bueno
http://www.dedalus-software.com.ar/docs/comunicacionentreprocesos.pdf
Quiero que lo miren y me den una mano en el numeral 1.2.3 con respecto a "callbackFunction" porque el compilador no la reconoce y no encuentro ayuda sobre este.
Agradezco su ayuda.
Saludos |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 06 Nov, 2003 6:56 am Asunto: |
|
|
Hola rockfavc:
Se refiere a la función que tienes que crear tú y donde se procesaran los mensajes entre el servidor y cliente. En el siguiente enlace a la referencia del API tienes más información de como declararla:
DdeCallback Function (Windows User Interface)
En el documento al que haces referencia parece que se les olvido poner una muestra de como implementarla.
Tienes otra solución más sencilla, usando el componente "TDdeServerItem" (pestaña: System). Cuando se le envía información desde el cliente se dispara su evento "OnPokeData" y dentro de ese evento puedes usar sus propiedades "Lines" y "Text" para leer los datos recibidos y a su vez modificando las mismas contestas al cliente.
Es importante el nombre que le des a tu ejecutable, a tu form y al componente TDdeServerItem que arrastres sobre el, ya que usara estos nombres del siguiente modo para identificar al servidor DDE:
Service = Nombre del ejecutable
Topic = Nombre del form donde este el componente TDdeServerItem
Item = Nombre que le hemos dado al componente TDdeServerItem
Y para crear el cliente: teniendo estos datos, la forma de comunicarte con este servidor y usando el mismo ejemplo del mensaje anterior relacionado con Excel, quedaría algo así:
| Código: | // Añadimos: #include<memory> e #include<ddeman.hpp>
std::auto_ptr<TDdeClientConv> dde(new TDdeClientConv(0));
// Enlazamos con nuestro servidor DDE
dde->SetLink("Project1", "Form1");
// Enviamos datos
dde->PokeData("DdeServerItem1", "prueba");
// Leemos contestación
Caption = dde->RequestData("DdeServerItem1"); |
Esto dejando los nombres de cada cosa por defecto, pero podemos cambiarlos... También podemos arrastrar el componente "TDdeClientConv" en tiempo de diseño en vez de crearlo dinámicamente como en este ejemplo.
Como curiosidad, usando el mIRC para comunicarnos con nuestro servidor quedaría algo así:
Enviamos datos: /dde Project1 Form1 DdeServerItem1 esto es una prueba
Pedimos respuesta: //echo Datos: $dde(Project1, Form1, DdeServerItem1)
Por supuesto todo esto se puede complicar tanto como quieras con esos componentes, esto es solo un ejemplo lo mas básico que se me ocurre.
Saludos:
_Leo |
|
| Volver arriba |
|
 |
rockfavc Cmdr


Registrado: 23 Ago 2002Mensajes: 138Ubicación: Colombia (Medellín)
|
Publicado: Lun 10 Nov, 2003 8:49 pm Asunto: |
|
|
Hola Leo! gracias por la orientacion.
Voy a probar lo sugerido. Te estaré contando los avances.
Saludos
Marzo 03-2004
Ya lo he probado, funcionó correctamente.
MUCHAS GRACIAS.
Ultima edición por rockfavc el Mar 02 Mar, 2004 4:50 pm, editado 1 vez |
|
| Volver arriba |
|
 |
|