(Otra Solucion)
Para los RichEdit de DevExpress la solucion anterior funciona simplemente cambiando lo siguiente:
Código Delphi
[-]
with TcxRichEdit(destination.InnerControl) do
SendMessage(Handle,
EM_STREAMIN,
SFF_SELECTION or SF_RTF or SFF_PLAINRTF, LPARAM(@rtfStream));
Pero aqui les dejo otra solucion para estos mismos componentes. Es una forma mas lenta. La causa
de ello es que hay que seleccionar todo el texto del RichEdit de destino cada vez que se hace una
adicion. Pero si se hacen pocos adiciones, o el RichEdit de destino es pequeño puede valer la pena
olvidarse de los CallBacks.
Código Delphi
[-]
procedure TSQLBuilder32.AppendToRichEdit(const source: TStream;
destination : TcxRichEdit) ;
var
rtfStream : TEditStream;
ASelStart, ASelLength: Integer;
begin
destination.Lines.BeginUpdate;
with destination do
begin
ASelStart := SelStart;
ASelLength := SelLength;
try
Properties.StreamModes := Properties.StreamModes + [resmSelection];
try
SelStart := ASelStart;
SelLength := ASelLength;
Lines.LoadFromStream(source);
ModifiedAfterEnter := True;
finally
Properties.StreamModes := Properties.StreamModes - [resmSelection];
end;
finally
destination.Lines.EndUpdate;
end;
end;
end;