procedure TForm1.FindDialog1Find(Sender: TObject);
var i,k,n:integer;
    s,find:string;
begin
    find:=FindDialog1.FindText;
    n:=Length(find);
    i:=RichEdit1.SelStart+RichEdit1.SelLength;
    s:=copy(RichEdit1.Text,i+1,length(RichEdit1.Text)-i);
    k:=Pos(find,s);
    if k>0 then
      begin
        Form1.Show;
        RichEdit1.SelStart:=i+k-1;
        RichEdit1.SelLength:=n;
      end
    else
      ShowMessage('已搜索完毕');    
end;procedure TForm1.Replace1Click(Sender: TObject);
begin
  ReplaceDialog1.Execute;
end;procedure TForm1.ReplaceDialog1Replace(Sender: TObject);
var i,n:integer;
    s,old,new:string;
begin
    s:=RichEdit1.Text;
    old:=ReplaceDialog1.FindText;
    n:=Length(old);
    new:=ReplaceDialog1.ReplaceText;
    i:=Pos(old,s);
    RichEdit1.SelStart:=i-1;
    RichEdit1.SelLength:=n;
    RichEdit1.SelText:=new;
    if frReplaceAll in ReplaceDialog1.Options then
      repeat
      s:=RichEdit1.Text;
      i:=Pos(old,s);
      if i<>0 then
        RichEdit1.Text:=Copy(s,1,i-1)+new+Copy(s,i+n,length(s)-(+n)+1);
      until i=0;
end;
执行后没结果,不知哪错了,谢谢