4.4.2查找對話框部件
查找對話框部件為應用程序提供查找對話框, 用戶可使用查找對話框在文本文件中查找字符串。
可用Execult方法顯示查找對話框,如圖4.8。應用程序要查找的字符放到FindText屬性中。Options 屬性可決定查找對話框中有哪些選項。例如, 用戶可選擇是否顯示匹配檢查框。Options的常用選項如表4.2所示。
如果用戶在對話框中輸入字符並選擇
FindNext按鈕,對話框將發生OnFind事件。表4.2 查找對話框的Options屬性的取值及含義
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
取值 含義
───────────────────────────────────────
frDown 如果是真值,對話框中出現Down按鈕,查找方向向下。如果是假
值,Up按鈕將被選中,查找方向向上,frDown 值可在設計或運行
時設置。
frDisableUpDown 如果是真值,Up和Down按鈕將變灰,用戶不能進行選取;如果是
假值,用戶可以選擇其中之一。
frFindNext 如果是真值,應用程序查找在FindNext屬性中的字符串。
frMatchCase 如果是真值,匹配檢查框被選中。設計、運行時均可設置。
frWholeWord 如果是真值,整字匹配檢查框被選中,設計、運行時均可設置。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
在OnFind事件中可使用Options屬性來決定以何種方式查找。Find方法響應查找對話框的OnFind事件。
procedure TEditform.Find(Sender: TObject);
begin
with Sender as TFindDialog do
if not SearchMemo(Memo1, FindText, Options) then
ShowMessage('Cannot find "' + FindText + '".');
end;
其中SearchMemo函數是Search單元中定義的,SearchMemo可在TEdit,TMemo,以及其它TCustomEdit派生類中查找指定的字符串。查找從控件的脫字號(^)開始, 查找方式由Options決定。如果向後查找從控件的StlStart處開始,如果向前查找則從控件的SelEnd處查找。
如果在控件中找到相匹配的字符串,則字符串被選中,函數返回真值。如無匹配的字符串,函數返回假值。
特別注意的是TEdit,TMemo中有一個HideSeletion屬性,它決定當焦點從該控制轉移至其它控制時,被選中的字符是否保持被選中的狀態。如果是真值,則只有獲得焦點才能保持被選中狀態。查找時,焦點在查找對話框上.