» RadioButton: радиокнопка

K.A.V.
www.oszone.net
22.02.2010
Автор: K.A.V.
Последнее обновление: 17.05.2014

Для создания взаимодействующего элемента:
NOTIFY=ONCLICK

Для чтения статуса радиокнопки (отмечена/не отмечена) необходимо прочитать значение параметра State у элемента:
ReadINIStr $0 "$PLUGINSDIR\Project.ini" "Field 1" "State"
Результат в $0: 0 - радиокнопка не отмечена, 1 - радиокнопка отмечена

Аналогично, чтобы перед инициализацией странички записать желаемый статус, который будет показан пользователю, необходимо записать соответствующие значения.


Сообщения Windows

Управление статусом радиокнопки в режиме реального времени (во время работы странички) или после инициализации

Данная команда может быть использована и в момент работы странички (когда пользователь взаимодействует с другими элементами)

Для назначения статуса служит команда:
SendMessage $HWND ${BM_SETCHECK} "1" 0
где $HWND - HWND элемента, 1 - статус; 1 = отмечена, 0 = не отмечена

Не забудьте сначала узнать HWND элемента командой:
ReadINIStr $HWND "$PLUGINSDIR\Project.ini" "Field 1" "HWND"

Пример функции инициализации с назначением статуса

Без сообщения Windows
Function MyDialog

  InitPluginsDir
  File /oname=$PLUGINSDIR\Project.ini "Project.ini"

WriteINIStr "$PLUGINSDIR\Project.ini" "Field 1" "State" "1"

        InstallOptionsEx::initDialog /NOUNLOAD "$PLUGINSDIR\Project.ini"
        InstallOptionsEx::show
FunctionEnd

 C сообщением Windows
Function MyDialog

  InitPluginsDir
  File /oname=$PLUGINSDIR\Project.ini "Project.ini"

        InstallOptionsEx::initDialog /NOUNLOAD "$PLUGINSDIR\Project.ini"

ReadINIStr $HWND "$PLUGINSDIR\Project.ini" "Field 1" "HWND"
SendMessage $HWND ${BM_SETCHECK} "1" 0

        InstallOptionsEx::show
FunctionEnd


Взаимоисключающий выбор радиокнопок

По-умолчанию, вы не можете отметить несколько радиокнопок на своей страничке одновременно, т.е. например, при создании 4 радиокнопок, выбор всегда будет только одной радиокнопки.
Сейчас я расскажу вам, как распределить радиокнопки по группам и добиться создания любой структуры выбора.

Давайте рассмотрим простой пример, в котором наглядно будет показано, как разделить радиокнопки по группам.

Создаю 4 радиокнопки в NIS Edit:


Перед нами стоит следующая задача: сделать так, чтобы радиокнопки 1 и 2 были взаимоисключающими (выбор был между ними) и одновременно с этим сделать кнопки 3 и 4 такими же взаимоисключающими между собой.
Сделать это очень просто, плагину необходимо знать, с какой радиокнопки у нас начинается новая группа, поэтому, нам необходимо в секцию с настройкой радиокнопки в параметр Flags добавить значение GROUP

Следуя данному правилу, нам необходимо добавить в секции радиокнопок 1 и 3 вышеуказанное значение в параметр Flags
Сделать это можно и через NIS Edit, выделяем радиокнопку и добавляем значение GROUP в параметр Flags, вот так: