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;
执行后没结果,不知哪错了,谢谢
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;
执行后没结果,不知哪错了,谢谢
改为
RichEdit1.SelStart:=i;