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

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

Старожил


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

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


Цитата AlekseyPopovv:
Как сохранить статус CheckBox на кастомных страницах?
К примеру снимаю галочку с CheckBox и возвращаюсь на предыдущую страницу, потом обратно на следующую и галочка опять стоит. »
Завести под каждую галку переменную.
При создании страницы выставить статус галки из переменной.
При выходе со страницы (leave-функция и onBack-колбэк) записать статус галки в переменную.
Скрытый текст
Код: Выделить весь код
ShowInstDetails show
RequestExecutionLevel user
InstallColors /windows
InstallDir $TEMP

Page components
page custom OptionsSaveLoadTest OptionsSaveLoadTest_Leave
Page directory
Page instfiles instfiles_pre

!include LogicLib.nsh
!include nsDialogs.nsh
!include Sections.nsh

Var Option1
Var Option2
Var hOption1
Var hOption2


Section
  DetailPrint 'Exec mandatory section'
SectionEnd

Section /o '-Option 1' SecOpt1
  DetailPrint 'Exec Option1 section'
SectionEnd

Section /o '-Option 2' SecOpt2
  DetailPrint 'Exec Option2 section'
SectionEnd


Function OptionsSaveLoadTest
  nsDialogs::Create 1018
  Pop $0

  GetFunctionAddress $0 OptionsSaveLoadTest_OnBack
  nsDialogs::OnBack $0

  ${NSD_CreateCheckbox} 0 0 100% 8u 'Option&1'
  Pop $hOption1
  ${IfThen} $Option1 == ${BST_CHECKED} ${|} ${NSD_Check} $hOption1 ${|}


  ${NSD_CreateCheckbox} 0 15u 100% 8u 'Option&2'
  Pop $hOption2
  ${IfThen} $Option2 == ${BST_CHECKED} ${|} ${NSD_Check} $hOption2 ${|}

  nsDialogs::Show
FunctionEnd

Function OptionsSaveLoadTest_OnBack
  ${NSD_GetState} $hOption1 $Option1
  ${NSD_GetState} $hOption2 $Option2
FunctionEnd

Function OptionsSaveLoadTest_Leave
  Call OptionsSaveLoadTest_OnBack
FunctionEnd

Function instfiles_pre
  ${IfThen} $Option1 == ${BST_CHECKED} ${|} !insertmacro SelectSection ${SecOpt1} ${|}
  ${IfThen} $Option2 == ${BST_CHECKED} ${|} !insertmacro SelectSection ${SecOpt2} ${|}
FunctionEnd

Function .onInit
  StrCpy $Option1 ${BST_UNCHECKED}
  StrCpy $Option2 ${BST_UNCHECKED}
FunctionEnd
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:57, 13-10-2023 | #2812