ocultar a seção no instalador nsis condicionalmente à escolha dos botões de opção

StackOverflow https://stackoverflow.com/questions/5842127

  •  27-10-2019
  •  | 
  •  

Pergunta

Como uma seção pode ser ocultada condicionalmente ao marcar ou desmarcar RadioButtons na caixa de diálogo da página de componentes do instalador MUI NSIS.

Eu adicionei 2 RadioButtons, DEMO & BACKUP.

Quando o usuário escolher, DEMO RadioButton, a seção exibida será "INSTALL DATA OR NOT", ela pode ser marcada ou desmarcada pelo usuário e a seção "BACKUP DATA OR NOT" seria ocultada.

Quando o usuário escolher, BACKUP RadioButton, a seção exibida será "BACKUP DATA OR NOT", ela pode ser marcada ou desmarcada pelo usuário e a seção "INSTALL DATA OR NOT" seria ocultada.

SE EU USAR O SINAL -, a seção "INSTALAR DADOS OU NÃO" ficará oculta para AMBAS AS ESCOLHAS DE RADIOBUTTON, ou seja, também para DEMO e para ATUALIZAÇÃO, por favor ajude.

Além disso, existem recursos de SelectSection ou UnSelectSection, mas eles não ocultam a Seção, que é o que eu quero, que a Seção seja ocultada e desmarcada.

Foi útil?

Solução

Uma seção oculta não tem nome, então você precisa dar um nome a ela para que se torne visível novamente:

!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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top