Memo 中 使用 FindDialog

procedure TForm1.Button1Click(Sender: TObject);
begin
  finddialog1.Execute;
end;

procedure TForm1.FindDialog1Find(Sender: TObject);
var
  I, J, PosReturn, SkipChars: Integer;
begin
  
for I := 0 to Memo1.Lines.Count do
  
begin
    PosReturn :
= Pos(FindDialog1.FindText,Memo1.Lines[I]);
    
if PosReturn <> 0 then {found!}
    
begin
      SkipChars :
= 0;
      
for J := 0 to I - 1 do
        SkipChars :
= SkipChars + Length(Memo1.Lines[J]);
      SkipChars :
= SkipChars + (I*2);
      SkipChars :
= SkipChars + PosReturn - 1;

      Memo1.SetFocus;
      Memo1.SelStart :
= SkipChars;
      Memo1.SelLength :
= Length(FindDialog1.FindText);
      Break;
    
end;
  
end;
原文地址:https://www.cnblogs.com/jxgxy/p/2086144.html