Hola Lizeth!
Estás mesclando muchas ideas en tu mensaje, por lo que lo que realemente deseas queda confuso. Pero según entendí leyendo bien tu mensaje es agregar al cursor el texto que está en un ListBox manteniendo el formato del párrafo dónde valla a quedar insertado el nuevo texto.
Veo que tu código estás complicándote las cosa un poco. Hasta dónde recuerdo en mis trabajos con este componente, lo que deseas hacer es algo relativamente sencillo. Creo que bastaría con un código así:
Código Delphi
[-]
procedure MiForma.ListaDblClick(Sender: TObject);
var
sValor: string;
begin
inherited;
sValor := Lista.Selected.SubItems.Strings[0];
with MiRichEdit do
begin
SelLength := 0; SelText := sValor;
end;
end;
Como verás, las demás variables no son necesarias y mucho menos recordar la posición del cursor cuando el control pierde el foco. La propiedad
SelText se encarga de todo lo que estabas intentando hacer y respetará el formato del párrafo. Vale mencionar que estabas perdiendo el formato porque lo que realmente hacías es eliminar todo el texto del
RichEdit y reemplazándolo por un texto plano.
Saludos,
Chris.