Carpeta de Delphi\Demos\Indy\TCPStreamClientServer\
Tienes un ejemplo de Stream en esa carpeta. la clase base es TStream y de ella derivan TFileStream, TStringStream, TcustomMemoryStream, etc. Deberás usar el que mejor se acomode a tus necesidades.
TStream es simplemente un "flujo de datos", puedes asemejarlo a una tubería por el que puedes enviar datos de un origen al destino, de hecho, se puede usar para grabar en fichero, en memoria, etc.
Cita:
Empezado por Ayuda de TStream
TFileStream (for working with files)
TStringStream (for manipulating in-memory strings)
TMemoryStream (for working with a memory buffer)
TBlobStream (for working with BLOB fields)
TWinSocketStream (for reading and writing over a socket connection)
TOleStream (for using a COM interface to read and write)
|
Intuyo que TmemoryStream permitirá enviar tanto el texto como los emoticones, aunque no he trabajado con ellos.
El tema lo tienes aqui:
Código Delphi
[-]
with AThread.Connection do
begin
AStream := TStringStream.Create(SOutline);
OpenWriteBuffer;
WriteStream(AStream);
CloseWriteBuffer;
AStream.Free;
Simplemente creas el tipo de STream que necesites, llamas a OpenWriteBuffer para que empiece a "escuchar los datos que se grabaran en el Stream", Escribes con WriteStream(Tus datos y emoticones) y despues llamas a CloseWriteBuffer para que todos lo que se ha escrito se envíe por la red.
El problema lo tendrás en el parámetro de WriteStream, creo que el RxRichEdit tendrá algunas funciones como RxRichEdit1.Lines.SaveToStream que te ayudarán.
Saludos.