Что нового

Выбор пункта ControlTreeView по части имени пункта

juder

Новичок
Сообщения
19
Репутация
0
Добрый день!
Есть дерево, всегда рандомное, в начале всегда написано Пункт, потом цифра вида:
Пункт 4 "рандомный текст"
Пункт 11 "рандомный текст"
Пункт 1 "рандомный текст"
Пункт 2 "рандомный текст"
еще много пунктов....
Из другой части скрипта мне выдается цифра допустим 1 (причем этот пункт может стоять на любой позиции),отсюда вопрос, как-то можно выбрать пункт по частичному совпадению имени "Пункт 1 "?
 

Norm

Продвинутый
Сообщения
279
Репутация
74
При поиске, например "Пункт 3" желателно ставить в коце пробел " ", тоесть "Пункт 3 ", чтобы исключить из поиска Пункт 30, Пункт 31, Пункт 32 и тд.
Код:
#include <GUIConstantsEx.au3>
#include <GuiTreeView.au3>
#include <WindowsConstants.au3>

Local $sSuStr = "Пункт 3 "

_Main()

Func _Main()
    Local $hItem[41], $hItemFound, $hTreeView
    Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES)

    GUICreate("TreeView - Поиск пункта", 400, 300)

    $hTreeView = GUICtrlCreateTreeView(2, 2, 396, 268, $iStyle, $WS_EX_CLIENTEDGE)
    GUISetState()

    _GUICtrlTreeView_BeginUpdate($hTreeView)
    For $x = 0 To 40
        $hItem[$x] = GUICtrlCreateTreeViewItem("Пункт "& $x &" Text - "& $x, $hTreeView)
        For $y = 0 To 2
            GUICtrlCreateTreeViewItem("Пункт "& $x & $y &" Text - "& $x & $y, $hItem[$x])
        Next
    Next

    _GUICtrlTreeView_EndUpdate($hTreeView)

    $hItemFound = _GUICtrlTreeView_FindItem($hTreeView, $sSuStr, True)
    If $hItemFound Then
        _GUICtrlTreeView_SelectItem($hTreeView, $hItemFound)
        MsgBox(4160, "Информация", "Пункт найден:" & @LF & _
        "Дескриптор: " & $hItemFound & @LF & _
        "Текст: " & _GUICtrlTreeView_GetText($hTreeView, $hItemFound))
    Else
        MsgBox(4160, "Информация", "Не найден")
    EndIf

    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main
 
Последнее редактирование:
Верх