RichEditで検索する

RichEditコンポーネントの検索は FindDialogコンポーネントと FindTextメソッドを使用しますが、初めてだと解りにくいと思います。順を追って説明していきます。
(フォームにはRichEditとFindDialog、TMainMenuを配置しておいてください。この例ではメニューアイテム「Find1」をクリックすると検索をするように記述します。)

1)[検索...]メニューをクリックした処理。
procedure TForm1.Find1Click(Sender:TObject);
begin
   FindDialog1.Execute;  //検索ダイアログを表示します     
end;

2)検索ダイアログを閉じた直後の処理
procedure TForm.FindDialog1Find(Sender:TObject);
var
   intPos   :   integer;   //発見した位置保存用
begin
   intPos   :=  RichEdit1.FindText(FindDialog1.FindText,RichEdit1.SelStart + 1,Length(RichEdit1.Text),[]);
   if     intPos   >   0   then  begin
     //文字列発見
      RichEdit1.SetFocus;
      RichEdit1.SelStart     :=     intPos;
      RichEdit1.SelLength    :=     Length(FindDialog1.FindText);
      FindDialog1.Close;
   end else begin
     //文字列無し
      MessageDlg('検索文字列' + FindDialog1.FindText + 'は見つかりませんでした。',mtError,[mbOk],0);  
   end;

※この内容では「大文字・小文字を区別する」や「単語単位で検索」をしていません。