【正文】
delimiters, then skip delimiters. } { When Direction is backward (1), skip delims, then skip non delims } while (SearchCount 0) and ((Direction = 1) xor (BufPtr^ in WordDelimiters)) do begin Inc(BufPtr, Direction)。 end。 Dec(SearchCount)。 Result := SearchCount 0。 Inc(SearchCount)。 end。 if BufLen = 0 then Exit。 Inc(SelStart, SelLength)。 if SearchCount 0 then Exit。 end else begin Direction := 1。 SearchCount := SelStart。 if (SelStart 0) or (SelStart BufLen) then Exit。 { Using a Char map array is faster than calling AnsiUpper on every character } for C := Low(CharMap) to High(CharMap) do CharMap[C] := C。 AnsiUpperBuff(SearchString[1], Length(SearchString))。 while SearchCount 0 do begin if frWholeWord in Options then if not FindNextWordStart(Result) then Break。 while (CharMap[Result[I]] = SearchString[I+1]) do begin Inc(I)。 Break。 end。 Dec(SearchCount)。 Result := nil。 end. 替換對話框部件 替換對話框部件為應(yīng)用程序提供替換對話框。它包括查找對話框的所有功能,此外還允許使用者 更換被選中的字符串。 ReplaceText 屬性是被選中字符的替換字符串。其值如表 所示。用戶輸入查找字符串并按FindNext 按鈕時,發(fā)生 OnFind 事件。 表 替換對話框的 Options 屬性的取值及含義 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 取值 含義 ──────────────────────────────────────── frRelpace 如果是真值, 應(yīng)用程序?qū)?ReplaceText 屬性中的字符串替換 FindText 屬性中的字符串。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 例程中 方法響應(yīng) OnReplace 事件, Replace 方法首先判斷控制中被 選中字符串是否與替換字符串相等,如果不等則進行替換。直至無匹配字符串為止。 var Found: Boolean。 Found := SearchMemo(Memo1, FindText, Options)。 Found := SearchMemo(Memo1, FindText, Options)。 if (not Found) and (frReplace in Options) then ShowMessage(39。 + FindText + 39。)。 end。使用 Execute 方法可顯示打開對話框用戶通過選擇文件類型下拉框中的文件類型,可以確定顯示在文件列表中的文件。文件擴展名通常也稱為過濾器。應(yīng)用程序可以為打開對話框定義多個過濾器,對話框的FilterIndex 屬性可以決定哪個過濾器是文件類型下拉框中的缺省過濾器。 例程中關(guān)于文件打開的代碼如下: procedure (Sender : TObject)。 打開,保存對話框中的 Options 屬性值見表 表 打開、保存對話框的 Options 屬性取值及含義 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 值 含義 ────────────────────────────────────── ofAllowMultiSelect 如果是真值,則允許在文