Una solución puede ser:
Código Delphi
[-]
RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
Y en contexto podría quedar más o menos de este modo:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
const
S = 'cadena-busqueda';
var
posResultado: integer;
begin
with RichEdit1 do
posResultado := FindText(S, 0, Length(Text), []);
if (posResultado <> -1) then
begin
with RichEdit1 do
begin
SetFocus;
SelStart := posResultado;
SelLength := Length(S);
Perform(EM_SCROLLCARET, 0, 0);
end;
end;
end;