Hola jusaso, como te dice ecfisa en su codigo de ejemplo solo esta seleccionando el producto por lo que el final es el Length del producto.
No deberías borrar el RichEdit sino trabajar sobre el contenido del mismo RichEdit, yo seleccionaría las líneas que estan antes y despues del texto que se quiere mostrar y eliminarlas.
Código Delphi
[-]
procedure BorrarSeleccion;
var
IniSelect, FinSelect : Integer;
begin
IniSelect := RichEdit1.Perform(EM_LINEFROMCHAR,RichEdit1.SelStart,0);
FinSelect := RichEdit1.Perform(EM_LINEFROMCHAR,RichEdit1.SelStart + RichEdit1.SelLength,0);
for i:=IniSelect to FinSelect do
RichEdit1.Lines.Delete(IniSelect);
end;
...............................................................
...............................................................
...............................................................
nIni := AnsiPos('1234', Richedit1.Text);
nFin := AnsiPos('1235', Richedit1.Text);
Richedit1.SelStart := nFin;
Richedit1.SelLength := Length(Richedit1.Text);
BorrarSeleccion;
Richedit1.SelStart := 0;
Richedit1.SelLength := nIni;
BorrarSeleccion;
el código quedaría mas o menos así, talvez tengas que ajustar algo.
Saluditos