Функция _GUICtrlRichEdit_FindText

 ↑  ←  Описание функции


_GUICtrlRichEdit_FindText

Поиск текста от позиции курсора или от позиции курсора в выделенном тексте

#include <GuiRichEdit.au3>
_GUICtrlRichEdit_FindText($hWnd, $sText [, $fForward = True [, $fMatchCase = False [, $fWholeWord = False [, $iBehavior = 0]]]])

Параметры

$hWnd Дескриптор элемента
$sText Искомый текст
$fForward [необязательный] Направление поиска
    (Win 95: поиск всегда вперед)
$fMatchCase [необязательный] Поиск с учетом регистра
    По умолчанию: не учитывать регистр символов
$fWholeWord [необязательный] Поиск, только для текста, как целое слово
    По умолчанию: часть или целое слово
$iBehavior [необязательный] Любая комбинация BitOr из $FR_MATCHALEFHAMZA, $FR_MATCHDIAC и $FR_MATCHKASHIDA     По умолчанию: 0

Возвращаемое значение

Успех:Если найдено после указанной позиции начала, то возвращается позиция первого символа найденного сопоставления текста, иначе -1
Ошибка:Возвращает -1 и устанавливает @error
@error:101 - $HWnd не является дескриптором
102 - $sText = ""
103 - $fForward не является True или False
104 - $fMatchCase не является True или False
105 - $fWholeWord не является True или False
1061 - $iBehavior не является числом
1062 - $iBehavior не является допустимым значением

См. также

_GUICtrlRichEdit_FindTextInRange

См. также

Искать EM_FINDTEXT в библиотеке MSDN

Пример

#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
OnAutoItExitRegister('_OnExit') ; Удаляет RichEdit и GUI даже при завершении скрипта с ошибкой

$hGui = GUICreate("Поиск текста", 320, 300, -1, -1)
$hRichEdit = _GUICtrlRichEdit_Create($hGui, "Возвращает позицию найденного текста", 10, 10, 400, 220, _
        BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
$lblMsg = GUICtrlCreateLabel("Строка состояния", 10, 300-20, 300, 17)
$iButton = GUICtrlCreateButton('Найти текст', 220, 240, 80, 20)
$iInput = GUICtrlCreateInput('позИцию', 10, 240, 200, 20)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $iButton
            ; Устанавливает текстовый курсор в начало, так как поиск от курсора
            _GUICtrlRichEdit_GotoCharPos($hRichEdit, 0)
            $sFindText = GUICtrlRead($iInput)
            ; Поиск текста
            $iPos = _GUICtrlRichEdit_FindText($hRichEdit, $sFindText)
            If Not @error Then
                GUICtrlSetData($lblMsg, $iPos)
                ; Выделяет найденный текст
                _GUICtrlRichEdit_SetSel($hRichEdit, $iPos, $iPos + StringLen($sFindText))
            EndIf
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Func _OnExit()
    ; Для версий ниже 3.3.8.0 обязательно удаление RichEdit или GUI для освобождения ресурсов RichEdit
    _GUICtrlRichEdit_Destroy($hRichEdit)
    GUIDelete()
EndFunc