Что нового

TreeView + RadioButton : Изменение поведения пунктов

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Версия AutoIt
3.3.12.0
Версия
1.0
AutoIt: 3.3.12.0

Категория: Вспомогательные функции, Элементы GUI, Разное

Описание: Изменение поведения пунктов в TreeView. Пункты могут иметь поведение RadioButton и CheckBox.
Для визуального отображения используются иконки. Иконки произвольные. Для примера в архиве есть файл сохранения\загрузки TreeView
Выбор пункта делается мышкой либо кнопкой Пробел на клавиатуре.

Сохранение в файл и загрузка TreeView.
Добавление информации элементам TreeView, сохранение информации в файл

Код/Пример:
Код:
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <TreeViewRCH.au3>

Global $Form1 = GUICreate('Form1', 700, 588, -1, -1)
Global $TreeView1 = GUICtrlCreateTreeView(16, 16, 281, 505, BitOR($TVS_HASBUTTONS, $TVS_EDITLABELS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS))
Global $Combo1 = GUICtrlCreateCombo('', 336, 16, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, '0 Основной пункт|1 Основной первым|2 Дочерний пункт|3 Дочерний первым|4 После указанного', '0 Основной пункт')
Global $Button1 = GUICtrlCreateButton('Создать', 490, 16, 75, 25)
Global $Button2 = GUICtrlCreateButton('Загрузить', 344, 112, 75, 25)
Global $Button3 = GUICtrlCreateButton('Сохранить', 344, 160, 75, 25)
Global $Button4 = GUICtrlCreateButton('Показать все пункты', 344, 200, 150, 25)
Global $Button5 = GUICtrlCreateButton('Данные', 344, 248, 75, 25)
Global $Button6 = GUICtrlCreateButton('Только один', 344, 296, 75, 25)
Global $Button8 = GUICtrlCreateButton('Удалить пункт', 344, 344, 100, 25)
Global $Button9 = GUICtrlCreateButton('Удалить все пункты', 344, 388, 120, 25)
Global $Button10 = GUICtrlCreateButton('Удалить TreeView', 344, 432, 120, 25)
Global $Button11 = GUICtrlCreateButton('Снять выбор', 344, 480, 120, 25)
Global $Button12 = GUICtrlCreateButton('Изменить поведение', 344, 524, 120, 25)
Global $Button13 = GUICtrlCreateButton('Изменить данные', 500, 248, 120, 25)
Global $iDummyS = GUICtrlCreateDummy()
Global $iDummyE = GUICtrlCreateDummy()
Global $iDummyD = GUICtrlCreateDummy()
Global $AccelKeys[3][2] = [['{Enter}', $iDummyS], ['^{Enter}', $iDummyE], ['{DEL}', $iDummyD]]
GUISetAccelerators($AccelKeys)
GUISetState()

Local $path = @ScriptDir
Local $aIco[4] = [$path & '\chk.ico', $path & '\unchk.ico', $path & '\rd.ico', $path & '\unrd.ico']
Local $SaveTVini = $path & '\ExTV.ini'
_GUITreeViewEx_InitTV($TreeView1, $aIco)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            _GUITreeViewEx_CreateItem('Пункт ' & Random(12, 1000000000, 1), Number(GUICtrlRead($Combo1)))
        Case $Button2
            _GUITreeViewEx_LoadTV($SaveTVini, 'TreeView', 'DataTV')
        Case $Button3
            _GUITreeViewEx_SaveTV($SaveTVini, 'TreeView', 'DataTV')
        Case $Button4
            Local $gettv = _GUITreeViewEx_SaveTV()
            _ArrayDisplay($gettv)
        Case $Button5
            Local $getdata = _GUITreeViewEx_GetItemData()
            _ArrayDisplay($getdata)
        Case $Button6
            _ChooseOnlyOne()
        Case $iDummyE
            _EditTextTV()
        Case $iDummyS
            _TextEndTV()
        Case $Button8, $iDummyD
            _DeleteItems()
        Case $Button9
            _GUITreeViewEx_Delete(1)
        Case $Button10
            _GUITreeViewEx_Delete(0)
        Case $Button11
            _TV_UnCheckAll()
        Case $Button12
            _ReactchangeCHK()
        Case $Button13
            _GUITreeViewEx_SetItemData($aIco); $aIco пример массива данных
    EndSwitch
WEnd

Файл: Исходник + пример

История версий:
1.0

Источник: Идея сохранения в файл и загрузки взята с официального форума
Остальное отсюда
Автор(ы): joiner
 

Вложения

  • TV_EX.jpg
    TV_EX.jpg
    89.8 КБ · Просмотры: 70
Последнее редактирование:
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
добавил одновременную работу с несколькими TreeView
 
Верх