GUIStartGroup
Определяет, что все последующие создаваемые элементы, будут группироваться вместе.
GUIStartGroup ( [ winhandle ] )
Параметры
winhandle | [необязательный] Дескриптор окна, возвращённый функцией GUICreate() (по умолчанию ранее используемое окно). |
Возвращаемое значение
Успех: | Возвращает 1. |
Ошибка: | Возвращает 0. |
Примечания
Эта функция обычно используется при работе с радио-кнопками. При нажатии радио-кнопки все остальные радио-кнопки в той же группе будут сброшены. Функция GUIStartGroup позволяет легко определить эти группы.См. также
GUICtrlCreateGroupПример
#include <GUIConstantsEx.au3>
Example()
Func Example()
Local $button_1, $radio_1, $radio_2, $radio_3
Local $radio_4, $radio_5, $radio_6, $input_1, $input_2
Local $radioval1, $radioval2, $msg
Opt("GUICoordMode", 1)
GUICreate("Группирование радиокнопок", 400, 280)
; Создание элементов
$button_1 = GUICtrlCreateButton("B&utton 1", 30, 20, 120, 40)
GUICtrlCreateGroup("Две независимые группы", 30, 90, 165, 160)
GUIStartGroup()
$radio_1 = GUICtrlCreateRadio("Радио &0", 50, 120, 70, 20) ; символ после амперсанда & позволяет сделать выбор
$radio_2 = GUICtrlCreateRadio("Радио &1", 50, 150, 60, 20)
$radio_3 = GUICtrlCreateRadio("Радио &2", 50, 180, 60, 20)
GUIStartGroup()
$radio_4 = GUICtrlCreateRadio("Радио &A", 120, 120, 70, 20)
$radio_5 = GUICtrlCreateRadio("Радио &B", 120, 150, 60, 20)
$radio_6 = GUICtrlCreateRadio("Радио &C", 120, 180, 60, 20)
GUIStartGroup()
$input_1 = GUICtrlCreateInput("Поле ввода 1", 200, 20, 160, 30)
$input_2 = GUICtrlCreateInput("Поле ввода 2", 200, 70, 160, 30)
; Установить начальные состояния (отмеченная радиокнопка, фокус на кнопке и т.д.)
GUICtrlSetState($radio_1, $GUI_CHECKED)
GUICtrlSetState($radio_6, $GUI_CHECKED)
GUICtrlSetState($button_1, $GUI_FOCUS + $GUI_DEFBUTTON)
; Инициализация переменной, которая будет использована для отслеживания событий GUI
$radioval1 = 0 ; Принимаем за 0 = первая радиокнопка выбрана, 2 = последняя радиокнопка
$radioval2 = 2
GUISetState()
; В этом цикле используются переменные для отслеживания изменений состояния радиокнопок,
; другой способ заключается в использовании GUICtrlRead(), чтобы читать состояние каждого элемента.
; Оба способа являются правильными
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $button_1
MsgBox(4096, "Кнопка", "Радио " & $radioval1 & @LF & "Радио " & Chr($radioval2 + Asc("A")) & @LF & GUICtrlRead($input_1) & @LF & GUICtrlRead($input_2))
Case $msg = $radio_1 Or $msg = $radio_2 Or $msg = $radio_3
$radioval1 = $msg - $radio_1
Case $msg = $radio_4 Or $msg = $radio_5 Or $msg = $radio_6
$radioval2 = $msg - $radio_4
EndSelect
WEnd
EndFunc