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:
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);
Defines que el servidor pasa datos string.
y usas el metodo de LoadFromFile en el otro extremo. Listo