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

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


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

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


kotkovets,
Подскажи пожалуйста, а как подкорректировать вышеприведённые примеры, чтобы при нажатии кнопки отметки всех чекбоксов, "кнопка" становиласьь активной ?
Вот так, при нажатии кнопки отметке всех чекбоксов "кнопка" не активна :
Код: Выделить весь код
!include "nsDialogs.nsh"
!include "winmessages.nsh"
!include "logiclib.nsh"
OutFile "test.exe"

Page Custom pre

var dialog
var Checkbox1
var Checkbox2
var Check1
var Check2
var button
var button1

Function pre
	nsDialogs::Create 1018
	Pop $dialog
	${NSD_CreateCheckbox} 0 0 50% 20% "При отметке кнопка станет активной"
		Pop $Checkbox1
		${NSD_OnClick} $Checkbox1 fnCheckbox1

	${NSD_CreateCheckbox} 0 25% 50% 20% "При отметке кнопка станет активной"
		Pop $Checkbox2
		${NSD_OnClick} $Checkbox2 fnCheckbox2

	${NSD_CreateButton} 25% 45% 15% 10% "Кнопка"
		Pop $button
		EnableWindow $button 0 # start out disabled
		
	${NSD_CreateButton} 40u 105u 140u 15u `Кнопка отметки всех чекбоксов`
	      Pop $Button1
    ${NSD_OnClick} $Button1 ButtonClickCheckBox

	nsDialogs::Show
FunctionEnd

Function fnCheckbox1
    Pop $Checkbox1
    Call DisableButton
FunctionEnd
Function fnCheckbox2
    Pop $Checkbox2
    Call DisableButton
FunctionEnd

Function DisableButton
     ${NSD_GetState} $Checkbox1 $Check1
     ${NSD_GetState} $Checkbox2 $Check2

     ${If} $Check1 == 1
     ${OrIf} $Check2 == 1 ;логика ИЛИ
        EnableWindow $button 1
     ${Else}
        EnableWindow $button 0
     ${EndIf}
FunctionEnd

Function ButtonClickCheckBox
   Pop $Button1

   ${NSD_GetState} $CheckBox1 $Check1
   ${NSD_GetState} $CheckBox2 $Check2

   ${If} $Check1 == 1
   ${Orif} $Check2 == 1
        ${NSD_SetState} $CheckBox1 0
        ${NSD_SetState} $CheckBox2 0
   ${Else}
        ${NSD_SetState} $CheckBox1 1
        ${NSD_SetState} $CheckBox2 1
   ${EndIf}
FunctionEnd

Section
SectionEnd

Последний раз редактировалось MKN, 18-10-2011 в 13:40.


Отправлено: 13:33, 18-10-2011 | #1762