Нужно сделать так, чтобы по нажатию кнопки "Найти далее" в RichEdit't с текстом курсор переходил сначала на первое найденное искомое слово, по второму нажатию - на второе найденное исходное слово и так далее. Я сделал так:
Function poiskDOWN(ss:string):longint;
begin
delete(ss,1,pDOWN);
result:=pos(form13.sedit1.text,ss);
pdown:=result+length(form13.sedit1.text);
end;
procedure TForm13.sButton3Click(Sender: TObject);
var p:TPoint;
begin
if sedit1.text='' then begin
messagebox(handle,'Не введён текст для поиска!','Внимание!',0);
exit;
end;
with form13 do
begin
if pos(sedit1.text,srichedit12.text)>0 then
begin
p.x:=poiskDOWN(sRichedit12.text);
srichedit12.CaretPos:=p;
srichedit12.setfocus;
end
else messagebox(handle,'Фрагмент не найден!','Внимание',0);
end;
end;
Как мне кажется, алгоритм правильный, каждый раз функция отрезает от всего текста тот фрагмент, в котором уже был поиск. Но вот не работает почему-то... Первое вхождение находит, а потом курсор переходит куда глаза глядят

А, и ещё, переменная PDown изначально равна 0.