var
Form1: TForm1;
Ps: Integer;
implementation
{$R *.dfm}
procedure FindAndSelectString(RichEdit: TRichEdit; const SearchString: string; var Poss: Integer);
var
StartPos: Integer;
begin
StartPos := RichEdit.FindText(SearchString, Poss, Length(RichEdit.Text), []);
if StartPos <> -1 then
begin
RichEdit.SelStart := StartPos;
RichEdit.SelLength := Length(SearchString);
RichEdit.SetFocus;
Ps := StartPos + RichEdit.SelLength;
end
else
begin
Ps := 0;
end;
end;
procedure JumpToLine(RichEdit: TRichEdit; LineNumber: Integer);
begin
if (LineNumber >= 0) and (LineNumber < RichEdit.Lines.Count) then
begin
RichEdit.SetFocus;
RichEdit.CaretPos := Point(0, LineNumber);
RichEdit.Perform(EM_SCROLLCARET, 0, 0);
Ps := RichEdit.SelStart;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
FindAndSelectString(RichEdit1, Edit1.Text, Ps);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
JumpToLine(RichEdit1, StrToInt(Edit2.Text) );
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Ps := 0;
end;
end.