Что нового

Древо папок и файлов с выбором (CheckBox)

Вовчик55

Новичок
Сообщения
57
Репутация
0
Подскажите возможно ли в AutoIt сделать окно выбора папок/файлов выставлением галочки (как на скриншоте)
E4nGc.png
И чтобы потом то, что выбрано было (файлы, папки) сохранялось в переменную. Для того чтобы можно было потом использовать для копирования/удаления/перемещения и т.д. (как файлов, так и папок)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Вовчик55,
1. TVExplorer UDF - Создание дерева папок и файлов
2. Пример.
Код:
#include <GUIConstantsEx.au3>
#include <GuiTreeView.au3>
#include <WindowsConstants.au3>
#include <Array.au3>

_Main()

Func _Main()

	Local $hGUI, $hTreeView, $hItem, $iCount, $aChecked[1] = [0], $iBtn
	Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES)
	$hGUI = GUICreate('Создание TreeView', 400, 310)
	$iBtn = GUICtrlCreateButton('Click me', 150, 275, 100, 30)
	$hTreeView = _GUICtrlTreeView_Create($hGUI, 2, 2, 396, 268, $iStyle, $WS_EX_CLIENTEDGE)
	GUISetState()
	_GUICtrlTreeView_BeginUpdate($hTreeView)
	For $x = 1 To Random(2, 10, 1)
		$hItem = _GUICtrlTreeView_Add($hTreeView, 0, StringFormat('[%02d] Пункт', $x))
		For $y = 1 To Random(2, 10, 1)
			_GUICtrlTreeView_AddChild($hTreeView, $hItem, StringFormat('[%02d-%02d] Дочерний', $y, $x))
		Next
	Next
	$hItem = 0
	_GUICtrlTreeView_EndUpdate($hTreeView)

	While 1
		Switch GUIGetMsg()
			Case $GUI_EVENT_CLOSE
				ExitLoop
			Case $iBtn
				$iCount = _GUICtrlTreeView_GetCount($hTreeView)
				ReDim $aChecked[$iCount + 1]
				$hItem = _GUICtrlTreeView_GetFirstItem($hTreeView)
				If _GUICtrlTreeView_GetChecked($hTreeView, $hItem) Then
					$aChecked[0] += 1
					$aChecked[$aChecked[0]] = _GUICtrlTreeView_GetText($hTreeView, $hItem)
				EndIf
				For $i = 1 To $iCount - 1
					$hItem = _GUICtrlTreeView_GetNext($hTreeView, $hItem)
					If _GUICtrlTreeView_GetChecked($hTreeView, $hItem) Then
						$aChecked[0] += 1
						$aChecked[$aChecked[0]] = _GUICtrlTreeView_GetText($hTreeView, $hItem)
					EndIf
				Next
				If $aChecked[0] <> $iCount Then ReDim $aChecked[$aChecked[0] + 1]
				_ArrayDisplay($aChecked)
				$iCount = 0
				$hItem = 0
				ReDim $aChecked[1]
				$aChecked[0] = 0
		EndSwitch
	WEnd
	GUIDelete()
EndFunc   ;==>_Main
1 и 2 совместите сами, времени нет.
 
Верх