Ver Mensaje Individual
  #3  
Antiguo 11-06-2014
pmarin pmarin is offline
Miembro
 
Registrado: jun 2006
Ubicación: Valencia( España )
Posts: 17
Reputación: 0
pmarin Va por buen camino
(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) ;
// ======================================================== //
// Name: AppendToRichEdit(source, destination)
//
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;
(*AppendToRichEdit*)
end;
Responder Con Cita