2011-04-30 74 views
2

如何在MUI NSIS安装程序组件页面对话框中检查或取消选中RadioButton时有条件地隐藏节。根据选择的单选按钮有条件地隐藏部分

我已添加2个RadioButtons,DEMO &备份。

当用户选择DEMO RadioButton时,则显示的部分将是“INSTALL DATA OR NOT”,它可以被用户选中或取消选中,&“BACKUP DATA OR NOT”部分将被隐藏。

当用户选择,BACKUP单选按钮,然后显示科将“备份数据OR NOT”,可以检查或由用户选中,&“安装数据OR NOT”部分将被隐藏。

如果我使用 - 符号,那么“安装数据或非”部分对于双方的无线电选择都是隐藏的,即对于更新的DEMO也是&,请帮助。

此外,还有SelectSection或UnSelectSection的功能,但它们不隐藏Section,这是我想要的,该部分应该隐藏和未选中。

回答

4

隐藏的部分还没有名字,所以你需要给它一个名字为它再次变为可见:

!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 
+0

主席先生,我想跳过组件页面,如果$将InstallType == DEMO,怎么办我这样做? – sqlchild 2011-06-20 05:46:53

+2

@sqlchild:要跳过页面,请在页面预回调函数中调用Abort – Anders 2011-06-20 15:52:00

相关问题