先用一个变量记录上一次查找到的位置,如FPos,再用变量保存查找的文本的长度如FLength;
用变量FFindText保存要查找的文本
procedure TForm1.FindDialog1Find(Sender: TObject);
begin
FPos := Pos(FindDialog1.FindText, RichEdit1.Lines.Text);
if FPos <> 0 then
begin
FPos := FPos - 1;
FLength := Length(FindDialog1.FindText);
FFindText := FindDialog1.FindText;
RichEdit1.SelStart := FPos;
RichEdit1.SelLength := FLength;
end;
end;
procedure TForm1.btnFindNextClick(Sender: TObject);
var
iPos: integer;
begin
iPos := Pos(FFindText, copy(RichEdit1.Lines.Text, FPos + FLength,
Length(RichEdit1.Lines.Text)));
if iPos <> 0 then
begin
RichEdit1.SelStart := FPos + FLength + iPos - 1;
RichEdit1.SelLength := FLength;
FPos := RichEdit1.SelStart;
end;
end;
用变量FFindText保存要查找的文本
procedure TForm1.FindDialog1Find(Sender: TObject);
begin
FPos := Pos(FindDialog1.FindText, RichEdit1.Lines.Text);
if FPos <> 0 then
begin
FPos := FPos - 1;
FLength := Length(FindDialog1.FindText);
FFindText := FindDialog1.FindText;
RichEdit1.SelStart := FPos;
RichEdit1.SelLength := FLength;
end;
end;
procedure TForm1.btnFindNextClick(Sender: TObject);
var
iPos: integer;
begin
iPos := Pos(FFindText, copy(RichEdit1.Lines.Text, FPos + FLength,
Length(RichEdit1.Lines.Text)));
if iPos <> 0 then
begin
RichEdit1.SelStart := FPos + FLength + iPos - 1;
RichEdit1.SelLength := FLength;
FPos := RichEdit1.SelStart;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货