TFindOption and TFindOptions determine the controls that appear in a find dialog.
TFindOptions = set of TFindOption;
TFindOption TFindOptions;
TFindOption values determine which controls are enabled in a TFindDialog instance, and how the controls are initialized.
TFindOptions is a set of TFindOption values.
The following table lists the possible values:
Value |
Meaning |
frDisableMatchCase |
Disables (grays) the Match Case check box in a find dialog. |
frDisableUpDown |
Disables (grays) the Up and Down buttons, which determine the direction of the search. |
frDisableWholeWord |
Disables (grays) the Match Whole Word check box of find dialog. |
frDown |
Selects the Down button by default when the dialog opens. If the frDown flags is off, Up is selected when the dialog opens. (By default, frDown is on.) |
frFindNext |
This flag is turned on when the user clicks the Find Next button and turned off when the dialog closes. |
frHideMatchCase |
Removes the Match Case check box from the dialog. |
frHideWholeWord |
Removes the Match Whole Word check box from the dialog. |
frHideUpDown |
Removes the Up and Down buttons from the dialog. |
frMatchCase |
This flag is turned on (off) when the user selects (deselects) the Match Case check box. To select the check box by default when the dialog opens, set frMatchCase at design time. |
frReplace |
Applies to TReplaceDialog only. This flag is set by the system to indicate that the application should replace the current occurrence (and only the current occurrence) of the FindText string with the ReplaceText string. Not used in search routines. |
frReplaceAll |
Applies to TReplaceDialog only. This flag is set by the system to indicate that the application should replace all occurrences of the FindText string with the ReplaceText string. |
frShowHelp |
Displays a Help button in the dialog. |
frWholeWord |
This flag is turned on (off) when the user selects (deselects) the Match Whole Word check box. To select the check box by default when the dialog opens, set frWholeWord at design time. |
C++ Examples:
/* This example requires a TRichEdit, a TButton, and a TFindDialog. Clicking the button will display a Find Dialog to the right of the edit control. Filling in the "Find what" text and pressing the Find Next button will select the first matching string in the Rich Edit control that follows the previous selection. Notice that the "Match whole word only" and "Match case" work. */ void __fastcall TForm1::Button1Click(TObject *Sender) { FindDialog1->Position = Point(RichEdit1->Left + RichEdit1->Width, RichEdit1->Top); FindDialog1->Execute(); } void __fastcall TForm1::FindDialog1Find(TObject *Sender) { int FoundAt, StartPos, ToEnd; TSearchTypes mySearchTypes = TSearchTypes(); // begin the search after the current selection // if there is one // otherwise, begin at the start of the text if (FindDialog1->Options.Contains(frMatchCase)) mySearchTypes << stMatchCase; if (FindDialog1->Options.Contains(frWholeWord)) mySearchTypes << stWholeWord; if (RichEdit1->SelLength) StartPos = RichEdit1->SelStart + RichEdit1->SelLength; else StartPos = 0; // ToEnd is the length from StartPos // to the end of the text in the rich edit control ToEnd = RichEdit1->Text.Length() - StartPos; FoundAt = RichEdit1->FindText(FindDialog1->FindText, StartPos, ToEnd, mySearchTypes); if (FoundAt != -1) { RichEdit1->SetFocus(); RichEdit1->SelStart = FoundAt; RichEdit1->SelLength = FindDialog1->FindText.Length(); } else Beep(); } void __fastcall TForm1::FormCreate(TObject *Sender) { RichEdit1->PlainText = False; RichEdit1->Lines->LoadFromFile("../Overview.RTF"); // starts in Debug RichEdit1->ScrollBars = ssVertical; }
Delphi Examples:
{ This example requires a TRichEdit, a TButton, and a TFindDialog. Clicking the button click will display a Find Dialog to the right of the edit control. Filling in the "Find what" text and pressing the Find Next button will select the first matching string in the Rich Edit control that follows the previous selection. } 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 to 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;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|