Ver Mensaje Individual
  #2  
Antiguo 07-06-2012
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.941
Reputación: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Para pasar mensajes por fuera del proceso de un ejecutable (osea, lo que esta en memoria en tu programa) con capacidad de operar en internet se necesita serializar/deserializar las cosas.

http://es.wikipedia.org/wiki/Serializaci%C3%B3n

Piensa que el mundo exterior a tu ejecutable no es delphi, ergo, no entiende los tipos de datos y funciones de delphi. Aunque te comuniques Delphi=>Delphi no hay una forma de decir "Hey, haz de cuenta que corremos en el mismo espacio de memoria, asi tu estes en nigeria!".

Asi que hay que traducir un objeto en un formato simplificado.

Por ejemplo, si una clase:

Código Delphi [-]
Persona = TPersona
  Nombre:String;

Persona.Nombre := 'mamcx';

Entonces se pasaria en un formato como json, xml, binario, o ini como este caso:

Código Delphi [-]
[TPersona]
Nombre=mamcx

Entre ambos procesos.

El que se pueda enviar TDBXTime y demas es solo porque esas clases tienen definido su codigo de serializacion/deserializacion. Osea, realmente NO ESTAS PASANDO EL OBJETO, estas pasando los datos que permiten recrear el objeto en el otro lado.

Entonces, debes es convertir tu objeto delphi en un formato que ambos extremos entiendan, como por ejemplo:

(Esto es un caso GENERICO)
http://stackoverflow.com/questions/3...ti-and-not-cus

y luego en el extremo que recibe el formato, creas un objeto TClientDataSet, y le metes esos valores.

----

AFORTUNADAMENTE ClientDataset permite guardar datos en un stream/xml:

http://stackoverflow.com/questions/3...xml-contents-i

Código Delphi [-]
ClientDataSet1.SaveToFile('file.xml',dfXML);
//Cargas el archivo en un string y lo envias aqui

Defines que el servidor pasa datos string.

y usas el metodo de LoadFromFile en el otro extremo. Listo
__________________
El malabarista.
Responder Con Cita