Отключить кнопку «Далее» на странице компонентов, когда нет выбранных компонентов - PullRequest
1 голос
/ 07 декабря 2011

Я использую NSIS 2.46 для создания установщика для моего приложения Windows, у меня есть страница компонента с 12 флажками, то есть 12 разделами в моем коде NSIS, теперь я хочу отключить кнопку «Далее», если ни один изразделы проверяются пользователем, я использую этот код: NSIS Code

Почему-то он не принимает R регистров выше R9 ...

    SectionGetFlags ${section11} $R10 
    SectionGetFlags ${section12} $R11

Ошибка компилятора I 'я получаю Compiler error

Подскажите, пожалуйста, как отключить кнопку «Далее», если имеется более 10 компонентов ...

1 Ответ

3 голосов
/ 07 декабря 2011

Базовые регистры NSIS - это $ 0 ... $ 9 и $ R0 ... $ R9, поэтому вы должны использовать $ 1 и $ 2 для двух последних разделов.Или вы можете создать больше переменных, если хотите;Var /GLOBAL R10.

Если разделы от 1 до 12 пронумерованы без пробелов, вы можете использовать цикл:

!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
...