Hola.
Bueno, he revisado el código que hice hace meses y, finalmente, lo hice todo con 1 solo RichEdit, aunque me quedó la idea de que había usado 2.
Bueno, te incluyo el código de la función que escribí. Puede tener algún pequeño error puesto que lo he adaptado para ponerlo aquí, pues el código original no se ajusta del todo a lo que se comenta en este hilo.
Código Delphi
[-]
procedure TForm1.Selecciona_seccion_texto ( pp: integer );
var
num_lin, cc : integer ;
borra_lin : boolean ;
begin
outRichEdit1.Visible := false ;
outRichEdit1.Lines.LoadFromFile( 'Archivo_Ayuda.rtf' );
while trim ( outRichEdit1.Lines [ 0 ] ) <> ',,,---' + IntToStr ( pp )
do outRichEdit1.Lines.Delete( 0 );
outRichEdit1.Lines.Delete( 0 );
borra_lin := false ;
for cc := 0 to outRichEdit1.Lines.Count -1
do
begin
if trim ( outRichEdit1.Lines [ cc ] ) = ',,,---' + IntToStr ( pp +1 )
then
begin
borra_lin := true ;
num_lin := cc ;
end ;
if borra_lin
then outRichEdit1.Lines.Delete( num_lin ) ;
end ;
outRichEdit1.Visible := true ;
outRichEdit1.Lines.Insert( 0, '' ); outRichEdit1.Lines.Delete( 0 ); outRichEdit1.SetFocus ;
end ;
El texto está dividido en partes. Los separadores son ",,,---1", ",,,---2", ",,,---3", ..., ",,,---10", ",,,---11", etc.
El contenido del RichEdit sería algo así:
-----------------------------------------------------
,,,---1
Este es el texto del apartado 1 del texto.
Este es el texto del apartado 1 del texto.
Este es el texto del apartado 1 del texto.
,,,---2
Este es el texto del apartado 2 del texto.
Este es el texto del apartado 2 del texto.
Este es el texto del apartado 2 del texto.
,,,---3
Este es el texto del apartado 3 del texto.
Este es el texto del apartado 3 del texto.
Este es el texto del apartado 3 del texto.
Este es el texto del apartado 3 del texto.
,,,---4
-----------------------------------------------------
El nombre del RichEdit es outRichEdit1.
El parámetro "pp" indica el número del apartado del texto que queremos ver.
A mí me funcionó bastante bien y espero que te sirva.
Saludos.
Ramón.
PD.: Creo que el richedit tiene que tener la propiedad WordWrap a false para que funcione bien. Puede que no sea así (lo digo sin haberlo probado).