Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Alex S

Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


Мужики, помогите разобраться... Второй день вожусь. Сделал две кастомные странички, на первой есть чекбокс выбора создания ярлыка в меню Пуск, на второй кнопка выбора папки в меню Пуск. Не могу заставить вторую страницу считывать состояние отметки чекбокса и в зависимости от отметки активировать/деактивировать кнопку...
Код
!define PRODUCT_NAME "MyProg"
!define PRODUCT_VERSION "1.0"

SetCompressor lzma
!include "MUI2.nsh"
!include "nsDialogs.nsh"

Var CustPage1
Var DirRequest_Txt
Var DirRequest_Btn

var CustPage2
Var Check
var CheckBox1

!insertmacro MUI_PAGE_WELCOME
Page custom fnCustPage1
Page custom fnCustPage2

!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "setup.exe"
InstallDir "$PROGRAMFILES\MyProg"
ShowInstDetails show
ShowUnInstDetails show

;======================-Первая страница-=========================;
Function fnCustPage1
nsDialogs::Create 1018
Pop $CustPage1
!insertmacro MUI_HEADER_TEXT "..." "..."
${NSD_CreateCheckBox} 10u 90u 100u 12u "Ярлык в меню «Пуск»"
Pop $CheckBox1
${NSD_SetState} $CheckBox1 1
;${NSD_OnClick} $CheckBox1 fnCheckBox ; Такой вариант не работает
nsDialogs::Show
FunctionEnd
;======================-Вторая страница-=========================;
Function fnCustPage2
nsDialogs::Create 1018
Pop $CustPage2
!insertmacro MUI_HEADER_TEXT "..." "..."

${NSD_CreateText} 10.09u 86.38u 224.53u 13.31u "C:\ProgramData\Microsoft\Windows\Start Menu\Programs"
Pop $DirRequest_Txt

${NSD_CreateButton} 240.94u 86.38u 50.49u 13.31u "Обзор..."
Pop $DirRequest_Btn
${NSD_OnClick} $DirRequest_Btn fnc_DirRequest_Click
;Call fnCheckBox ; Такой вариант тоже не работает
nsDialogs::Show
FunctionEnd
;===========================================================;
Function fnCheckBox
Pop $CheckBox1
${NSD_GetState} $CheckBox1 $Check
${If} $Check = 1
EnableWindow $DirRequest_Txt 0
EnableWindow $DirRequest_Btn 0
${ElseIf} $Check = 0
EnableWindow $DirRequest_Txt 1
EnableWindow $DirRequest_Btn 1
${EndIf}
FunctionEnd
;===========================================================;
Function fnc_DirRequest_Click
Pop $R0
${If} $R0 == $DirRequest_Btn
${NSD_GetText} $DirRequest_Txt $R0
nsDialogs::SelectFolderDialog /NOUNLOAD "" "$R0"
Pop $R0
${If} "$R0" != "error"
${NSD_SetText} $DirRequest_Txt "$R0"
${EndIf}
${EndIf}
FunctionEnd
;===========================================================;
Section "" SEC01
SectionEnd

Отправлено: 01:47, 04-01-2018 | #2157