没有选定组件时禁用组件页面上的“下一步”按钮
Posted
技术标签:
【中文标题】没有选定组件时禁用组件页面上的“下一步”按钮【英文标题】:Disable 'next' button on the component page when there are no selected components 【发布时间】:2011-12-07 05:35:10 【问题描述】:我正在使用 NSIS 2.46 为我的 Windows 应用程序创建安装程序,我有一个包含 12 个复选框的组件页面,即我的 NSIS 代码中的 12 个部分,现在我想禁用“下一步”按钮,如果没有部分由用户检查,我正在使用以下代码:
不知何故,它不接受 R9 以上的 R 寄存器...
SectionGetFlags $section11 $R10
SectionGetFlags $section12 $R11
我得到的编译器错误是
如果组件超过 10 个,请告诉我如何禁用“下一步”按钮...
【问题讨论】:
将节标志与 0 进行比较是不安全的,您应该在 section.nsh 中使用 SectionFlagIsSet 辅助宏 为什么要粘贴代码图片? *** 支持代码块,点击编辑器工具栏中红色问号获取帮助或查看***.com/editing-help 好的,我不知道..谢谢:) 【参考方案1】:基本的 NSIS 寄存器是 $0...$9 和 $R0...$R9,因此您应该在最后两个部分使用 $1 和 $2。或者,您可以根据需要创建更多变量; Var /GLOBAL R10
.
如果 section1 到 section12 的编号没有间隙,您可以使用循环:
!include LogicLib.nsh
Section A S_1
SectionEnd
Section /o B S_2
SectionEnd
Section C S_3
SectionEnd
Function .onSelChange
StrCpy $0 0
StrCpy $1 $S_1
$DoWhile $1 <= $S_3
$If $SectionIsSelected $1
StrCpy $0 1
$ExitDo
$EndIf
IntOp $1 $1 + 1
$Loop
GetDlgItem $1 $HwndParent 1
EnableWindow $1 $0
FunctionEnd
【讨论】:
以上是关于没有选定组件时禁用组件页面上的“下一步”按钮的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法禁用设置为数字的editText的“下一步”按钮?