RAD Studio VCL Reference
|
Displays the Find dialog.
function Execute(ParentWnd: HWND): Boolean; override;
virtual __fastcall Boolean Execute(HWND ParentWnd);
Execute opens the Find dialog, returning true when a window handle is successfully allocated. If the dialog is already open when Execute is called, Execute brings the dialog to the top, activates its parent form, and returns true.
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!
|