FindText (Delphi)
Description
This example requires a TRichEdit, a TButton, and a TFindDialog. Clicking the button Click displays a Find Dialog to the right of the edit control. Filling in the "Find what" text and clicking the Find Next button selects the first matching string in the Rich Edit control that follows the previous selection.
Code
procedure TForm1.Button1Click(Sender: TObject);
begin
FindDialog1.Position :=
Point(RichEdit1.Left + RichEdit1.Width, RichEdit1.Top);
FindDialog1.Execute;
end;
procedure TForm1.FindDialog1Find(Sender: TObject);
var
FoundAt: LongInt;
StartPos, ToEnd: Integer;
mySearchTypes : TSearchTypes;
myFindOptions : TFindOptions;
begin
mySearchTypes := [];
with RichEdit1 do
begin
if frMatchCase in FindDialog1.Options then
mySearchTypes := mySearchTypes + [stMatchCase];
if frWholeWord in FindDialog1.Options then
mySearchTypes := mySearchTypes + [stWholeWord];
{ Begin the search after the current selection, if there is one. }
{ Otherwise, begin at the start of the text. }
if SelLength <> 0 then
StartPos := SelStart + SelLength
else
StartPos := 0;
{ ToEnd is the length from StartPos through the end of the
text in the rich edit control. }
ToEnd := Length(Text) - StartPos;
FoundAt :=
FindText(FindDialog1.FindText, StartPos, ToEnd, mySearchTypes);
if FoundAt <> -1 then
begin
SetFocus;
SelStart := FoundAt;
SelLength := Length(FindDialog1.FindText);
end
else Beep;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
const Path = 'OverView.RTF';
begin
RichEdit1.PlainText := False;
RichEdit1.Lines.LoadFromFile(Path);
RichEdit1.ScrollBars := ssVertical;
end;
Uses
- Vcl.Dialogs.TFindDialog.Position ( fr | de | ja )
- Vcl.Dialogs.TFindDialog.Execute ( fr | de | ja )
- Vcl.ComCtrls.TCustomRichEdit.FindText ( fr | de | ja )
- Vcl.Dialogs.TFindDialog.FindText ( fr | de | ja )
- Vcl.Dialogs.TFindDialog.OnFind ( fr | de | ja )
- Vcl.StdCtrls.TCustomEdit.SelStart ( fr | de | ja )
- Vcl.StdCtrls.TCustomEdit.SelLength ( fr | de | ja )
- Vcl.Dialogs.TFindDialog.Options ( fr | de | ja )
- Vcl.ComCtrls.TSearchTypes ( fr | de | ja )
- System.SysUtils.Beep ( fr | de | ja )
- Vcl.Dialogs.TFindOptions ( fr | de | ja )