#include <GuiConstantsEx.au3> Global $i_GUIs = 10, $i_Elements = 100 ;10 GUI, и 100 элементов на них всех (в общей сумме) Global $aGUI_Elements_Arr[$i_GUIs+1][$i_Elements+1] ;+1 т.к [0][0] зарезервированно для счётчика Opt("TrayMenuMode", 1) Opt("TrayOnEventMode", 1) TraySetClick(16) TrayCreateItem("Функция №1") TrayItemSetOnEvent(-1, "_GUICreate_Func_1") TrayCreateItem("Функция №2") TrayItemSetOnEvent(-1, "_GUICreate_Func_2") TrayCreateItem("Функция №3") TrayItemSetOnEvent(-1, "_GUICreate_Func_3") TrayCreateItem("") TrayCreateItem("Exit") TrayItemSetOnEvent(-1, "_Exit") While 1 $aMsg = GUIGetMsg(1) If $aMsg[0] = 0 Then ContinueLoop Switch $aMsg[0] Case $GUI_EVENT_CLOSE ToolTip("") GUISetState(@SW_HIDE, $aMsg[1]) GUIDelete($aMsg[1]) For $i = 1 To $aGUI_Elements_Arr[0][0] If $aGUI_Elements_Arr[$i][0] = $aMsg[1] Then For $j = 0 To $i_Elements-1 $aGUI_Elements_Arr[$i][$j] = "" Next ExitLoop EndIf Next Case $aGUI_Elements_Arr[1][1] ;Кнопка в GUI 1 ToolTip("Вы нажали Кнопку.", -1, -1, "Инфо", 1) Case $aGUI_Elements_Arr[2][1] ;Галочка Local $sCheckbox_Data = "Вы сняли отметку с галочки." If GUICtrlRead($aGUI_Elements_Arr[2][1]) = $GUI_CHECKED Then $sCheckbox_Data = "Вы поставили отметку на галочке." ToolTip($sCheckbox_Data, -1, -1, "Инфо", 1) Case $aGUI_Elements_Arr[3][2] ;Кнопка в GUI 3 ToolTip("Вы ввели: " & GUICtrlRead($aGUI_Elements_Arr[3][1]), -1, -1, "Инфо", 1) EndSwitch WEnd Func _GUICreate_Func_1() ToolTip("") _Check_GUI_Proc(1) If @error Then Return $aGUI_Elements_Arr[1][0] = GUICreate("Функция №1", 300, 120, 350, 150) $aGUI_Elements_Arr[1][1] = GUICtrlCreateButton("Кнопка", 20, 40, 60, 20) GUISetState(@SW_SHOW, $aGUI_Elements_Arr[1][0]) EndFunc Func _GUICreate_Func_2() ToolTip("") _Check_GUI_Proc(2) If @error Then Return $aGUI_Elements_Arr[2][0] = GUICreate("Функция №2", 300, 120, 350, 300) $aGUI_Elements_Arr[2][1] = GUICtrlCreateCheckbox("Галочка", 20, 40, 60, 20) GUISetState(@SW_SHOW, $aGUI_Elements_Arr[2][0]) EndFunc Func _GUICreate_Func_3() ToolTip("") _Check_GUI_Proc(3) If @error Then Return $aGUI_Elements_Arr[3][0] = GUICreate("Функция №3", 300, 120, 350, 450) $aGUI_Elements_Arr[3][1] = GUICtrlCreateInput("Строка", 20, 10, 260, 20) $aGUI_Elements_Arr[3][2] = GUICtrlCreateButton("Показать ввод", 20, 40, 120, 20) GUISetState(@SW_SHOW, $aGUI_Elements_Arr[3][0]) EndFunc Func _Check_GUI_Proc($i_GUI_Element) If IsHWnd($aGUI_Elements_Arr[$i_GUI_Element][0]) And WinExists($aGUI_Elements_Arr[$i_GUI_Element][0]) Then WinActivate($aGUI_Elements_Arr[$i_GUI_Element][0]) Return SetError(1, 0, 0) EndIf Return 1 EndFunc Func _Exit() Exit EndFunc |