Скрыть раздел в установщике nsis при условии выбора радиокнопок

Как можно условно скрыть раздел при проверке или снятии флажка с RadioButtons в диалоговом окне страницы компонентов программы установки MUI NSIS.

Я добавил 2 RadioButtons, DEMO и BACKUP.

Когда пользователь выбирает DEMO RadioButton, то отображаемый раздел будет "УСТАНОВИТЬ ДАННЫЕ ИЛИ НЕТ", пользователь может проверить или снять флажок, а раздел "РЕЗЕРВНЫЕ ДАННЫЕ ИЛИ НЕТ" будет скрыт.

Когда пользователь выбирает BACKUP RadioButton, то отображаемая секция будет отображаться как "BACKUP DATA OR NOT", пользователь может проверить или снять флажок, а раздел "INSTALL DATA OR NOT" будет скрыт.

ЕСЛИ Я ИСПОЛЬЗУЮ - - ЗНАК, то раздел "УСТАНОВИТЬ ДАННЫЕ ИЛИ НЕТ" скрыт для ОБОИХ ВЫБОРОВ РАДИОБУТТОНА, т. Е. Для ДЕМО также и для ОБНОВЛЕНИЯ, пожалуйста, помогите.

Кроме того, есть функции SelectSection или UnSelectSection, но они не скрывают Раздел, а это то, что я хочу, чтобы Раздел был скрыт и не отмечен.

1 ответ

Решение

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

!include Logiclib.nsh
!include Sections.nsh

page Components InitComponentsPage

!define INSTALLSECTIONNAME "Install"
section "" SEC_INSTALL
sectionend

!define BACKUPSECTIONNAME "Backup"
section "" SEC_BACKUP
sectionend

Function InitComponentsPage
${If} $InstallType == BACKUP
    SectionSetText ${SEC_BACKUP} "${BACKUPSECTIONNAME}"
    !insertmacro UnSelectSection ${SEC_INSTALL}
    SectionSetText ${SEC_INSTALL} ""
${Else}
    SectionSetText ${SEC_INSTALL} "${INSTALLSECTIONNAME}"
    !insertmacro UnSelectSection ${SEC_BACKUP}
    SectionSetText ${SEC_BACKUP} ""
${EndIf}
Functionend
Другие вопросы по тегам