![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Muchas gracias [seoane]. Voy a seguir tu consejo.
EDITO: Parece ser que sólo se puede usar con SendMessage y no con PostMessage. Para sobrecargar la recepción de un mensaje a una aplicación en Builder, e imagino que también en delphi, solo se puede usar PostMessage. Esto obliga a utilizar otro método de sobrecarga, quizas reescribir (como ya apunté al principio) TApplication:WndProc(Messages::TMessage &Message) o en su caso usar una clase derivada de TApplication. Se me antoja que debería ser mas sencillo. Última edición por escafandra fecha: 14-02-2008 a las 21:59:47. Razón: Añado comentario |
|
#2
|
||||
|
||||
|
Una pregunta, ¿por qué no utilizar la comunicación por red, a través del loop-back (localhost ó 127.0.0.1)? Es el método que se suele utilizar en los sistemas POSIX (UNIX, Linux, Solaris, MacOS, ...), incluso para comunicar el programa con el gestor de ventanas, y en mi opinión es bastante mejor, más lento pero mucho más flexible y menos propenso a las corrupciones de memoria.
En fin, una simple opinión.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi! - BAScript - Multi Language Scriptable Development Environment |
|
#3
|
||||
|
||||
|
Pues como parece que la solución no pasa por enviar un simple mensaje, tendre que tratar de hacerlo de otra forma. La idea de la memoria compartida suena bien, pero no se como hacerlo. Tampoco se como mapear ficheros en memoria, como apuntaba Mick.
Una solución fácil puede ser escribir un fichero en disco, pero parece chapucero... |
|
#4
|
||||
|
||||
|
Pues yo insisto con lo del loop-back
![]()
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi! - BAScript - Multi Language Scriptable Development Environment |
|
#5
|
|||
|
|||
|
Busca en google "delphi shared memory" y encontraras documentacion de sobra,
por ejemplo: http://www.eagle9.nl/main/Programmin.../ProgShMem.asp Saludos |
|
#6
|
||||
|
||||
|
Cita:
Gracias. |
|
#7
|
||||
|
||||
|
Correcto shared memory funciona.
He implementado una clase para hacerlo y utilizando esa clase, con dos líneas de programación, consigo comunicar los dos programas con éxito. El tema del loop-back lo investigaré mas despacio. También parece interesante. Gracias. EDITO: Pero... al pasar punteros tengo problemas si copio sus contenidos en memoria local del proceso. En el servidor, copio el contenido de un array de texto (char*) al shared memory dimensionado para tal. En el cliente copio esa memoria a un array de dimensión conocida. Si hago este último paso, termino teniendo errores en otras zonas de código, posiblemente por corrupción de memoria. Algo hago mal o no es un buen sistema para pasar arrays. Seguiré investigando. Última edición por escafandra fecha: 19-02-2008 a las 20:47:31. Razón: Añado comentario |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| pasar un puntero a una funcion | baby | Varios | 2 | 21-05-2007 13:10:22 |
| Se Pueden Pasar Form/units de una aplicacion a otra? | Alexis De la Cr | Varios | 8 | 06-07-2006 19:05:42 |
| Pasar texto de una aplicacion delphi a otra | OmarPerez | API de Windows | 4 | 13-07-2005 20:56:19 |
| Recibir parametros de otra aplicacion en Delphi | Coco_jac | Varios | 1 | 30-05-2005 17:43:17 |
| pasar parametros ms-dos desde mi aplicacion | ixMike | API de Windows | 5 | 13-02-2005 15:56:38 |
|