TFindDialog(検索ダイアログ)の使い方

TFindDialog(検索ダイアログ)の使い方

■TFindDialogを使う手順

  1. TFindDialogのOptionsプロパティで表示するコントロールを設定します。
  2. TFindDialogのExecute()メソッドでダイアログを表示します。
  3. TFindDialogのOnFind()イベントで検索処理を行います。

■TFindDialogの表示設定

Optionsプロパティで表示する項目を設定できます。

  • frDisableMatchCase
    検索ダイアログの[大文字と小文字を区別する]チェックボックスを無効(グレー表示)にする

    FindDialog1->Options << frDisableMatchCase;
    

  • frDisableUpDown
    検索の方向を指定する[Up]ボタンおよび[Down]ボタンを無効(グレー表示)にする。

    FindDialog1->Options << frDisableMatchCase;
    

  • frDisableWholeWord
    検索ダイアログの[単語単位で探す]チェックボックスを無効(グレー表示)にする

    FindDialog1->Options << frDisableWholeWord;
    

  • frDown
    ダイアログが開くときにデフォルトで[Down]ボタンを選択する。frDown フラグがオフの場合は,[Up]が選択される。デフォルトでは frDown はオン

    FindDialog1->Options >> frDown;
    

  • frHideMatchCase
    ダイアログの[大文字と小文字を区別する]チェックボックスを削除する

    FindDialog1->Options << frHideMatchCase;
    

  • frHideWholeWord
    ダイアログの[単語単位で探す]チェックボックスを削除する

    FindDialog1->Options << frHideWholeWord;
    

  • frHideUpDown
    ダイアログの[Up]ボタンと[Down]ボタンを削除する

    FindDialog1->Options << frHideUpDown;
    

  • frShowHelp
    [ヘルプ]ボタンがダイアログボックスに表示される

    FindDialog1->Options << frShowHelp;
    

■TFindDialogのイベント処理

TFindDialogのExecute()メソッドを呼ぶと、ダイアログを表示します。

FindDialog1->Execute();

次を検索]ボタンが押された時、OnFindイベントが発生します。
OnFindイベントに検索処理を記述することになります。

void __fastcall TForm1::FindDialog1Find(TObject *Sender)
{
  …
}

ダイアログのコントロールの状態は、Optionsプロパティで知ることができます。

  • 検索する方向

    Optionsプロパティに[frDown]があれば[下へ]が選択されています。
    なければ[上へ]が選択されています。

    if (FindDialog1->Options.Contains(frDown))
      Memo1->Lines->Add(L"下へ");
    else
      Memo1->Lines->Add(L"上へ");
    
  • 大文字と小文字を区別する

    Optionsプロパティに[frMatchCase]があれば[大文字と小文字を区別する]が選択されています。

    if (FindDialog1->Options.Contains(frMatchCase))
      Memo1->Lines->Add(L"大文字と小文字を区別する");
    else
      Memo1->Lines->Add(L"大文字と小文字を区別しない");
    
  • 単語単位で探す
    Optionsプロパティに[frWholeWord]があれば[単語単位で探す]が選択されています。

    if (FindDialog1->Options.Contains(frWholeWord))
      Memo1->Lines->Add(L"単語単位で探す");
    else
      Memo1->Lines->Add(L"単語単位で探さない");
    
  • 検索する文字列
    [検索する文字列]欄に入力された文字は、FindTextプロパティで取得できます。

    UnicodeString text = FindDialog1->FindText;
    

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください