TCustomRichView.SearchText, SearchTextA, SearchTextW

<< Click to display table of contents >>

TCustomRichView.SearchText, SearchTextA, SearchTextW

The methods search for the substring s in the document.

function SearchText(s: String;

  SrchOptions: TRVSearchOptions): Boolean;

function SearchTextA(s: TRVAnsiString;

  SrchOptions: TRVSearchOptions): Boolean;

function SearchTextW(s: TRVUnicodeString;

  SrchOptions: TRVSearchOptions): Boolean;

When found, these methods select substring and scroll to it (this behavior can be modified in OnTextFound event, see below).

 

if rvsroDown is not included in SrchOptions, the methods search upwards. if rvsroDown is included, the methods search downwards.

If rvsroFromStart is included in SrchOptions, the search is started from the beginning/end of the document. Otherwise, the methods start searching from the current selection*, if it exists. If nothing is selected, the methods start from the first visible item (when searching down) or the last visible item (when searching up).

rvsroSmartStart is used only if rvsroFromStart is not included. If rvsroSmartStart is included, and some document fragment is selected*, then:

when searching down, the search starts from the second selected* character;

when searching up, the search starts from the last but one selected* character;

(selected characters are counted from the top of document, the selection direction is ignored). This option allows to avoid selecting the same fragment again when changing a search direction.

* if rvsroFromStored is included in SrchOptions, the last stored search position if used instead of selection.

If rvsroMultiItem is included, the search can match substrings of several text items. If not included, the text is searched in each text item separately. For example, if the document contains the text Hello, the substring 'Hello' can be found only if this option is included, because 'He' and 'llo' belong to different items.

 

unicode Unicode note:  

Internally, text is stored as Unicode. SearchTextA converts s to Unicode (using Style.DefCodePage) and calls SearchTextW.

SearchText works:

like SearchTextA, in Delphi 2007 and older

like SearchTextW, in Delphi 2009 and newer

with UTF-8 string, in Lazarus

 

Note: There is incompatibility with programs written with the older version of TRichView (1.0 1.1.4). Now if rvsroDown is not included in SrchOptions, the methods search upwards. In the older versions there was no rvsroDown option, and SearchText searched downwards only.

 

When the text is found, OnTextFound event is called. If not disallowed in this event, the found text is selected. A selection requires a formatted document, so (unless you do your own processing in OnTextFound and disallow a selection) these methods must be called only when the document is formatted.

 

Return value: Is substring found?

 

See also methods of TRichViewEdit:

SearchText, -A, -W

See also global functions:

GetRVSearchOptions.

See also:

Searching in TRichView and TRichViewEdit.