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

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

Новый участник


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

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


Я, видимо, дуб.
Почему у меня "компонент №3" может отмечаться одновременно с первым или вторым?
И как при всем этом сделать так, чтобы при нажатии на группу "компоненты 1" галочка, либо снималась совсем, либо происходил последовательный перебор между 1, 2 и 3 компонентой?
Код: Выделить весь код
!include "MUI2.nsh"
!include "Sections.nsh"

!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"

InstType "все"
InstType "не все"

OutFile "File.exe"

Section "Компонент 0" ID_0
   SectionIn 1 2
SectionEnd

SectionGroup /e "Компоненты 1" IDG1

Section /o "Компонент 1" ID_1
   SectionIn 2
SectionEnd

Section "Компонент 2" ID_2
   SectionIn 1
SectionEnd

Section /o "Компонент 3" ID_3
SectionEnd

SectionGroupEnd

SectionGroup /e "Компоненты 2" IDG2

Section "Компонент 4" ID_4
   SectionIn 1
SectionEnd

Section "Компонент 5" ID_5
   SectionIn 1
SectionEnd

SectionGroupEnd

Function .onInit
  Push $0
  StrCpy $R0 ${ID_2}
  SectionGetFlags ${ID_1} $0
  IntOp $0 $0 & ${SECTION_OFF}
  SectionSetFlags ${ID_1} $0
  SectionGetFlags ${ID_2} $0
  IntOp $0 $0 | ${SF_SELECTED}
  SectionSetFlags ${ID_2} $0
  SectionGetFlags ${ID_3} $0
  IntOp $0 $0 & ${SECTION_OFF}
  SectionSetFlags ${ID_3} $0
  Pop $0
FunctionEnd

Function .onSelChange
  Push $0
  StrCmp $R0 ${ID_1} Check_ID_1
  SectionGetFlags ${ID_1} $0
  IntOp $0 $0 & ${SF_SELECTED}
  IntCmp $0 ${SF_SELECTED} 0 Done Done
  StrCpy $R0 ${ID_1}
  SectionGetFlags ${ID_2} $0
  IntOp $0 $0 & ${SECTION_OFF}
  SectionSetFlags ${ID_2} $0
  SectionGetFlags ${ID_3} $0
  IntOp $0 $0 & ${SECTION_OFF}
  SectionSetFlags ${ID_3} $0
  Goto Done
  Check_ID_1:
  StrCmp $R0 ${ID_2} Check_ID_2
  SectionGetFlags ${ID_2} $0
  IntOp $0 $0 & ${SF_SELECTED}
  IntCmp $0 ${SF_SELECTED} 0 Done Done
  StrCpy $R0 ${ID_2}
  SectionGetFlags ${ID_1} $0
  IntOp $0 $0 & ${SECTION_OFF}
  SectionSetFlags ${ID_1} $0
  SectionGetFlags ${ID_3} $0
  IntOp $0 $0 & ${SECTION_OFF}
  SectionSetFlags ${ID_3} $0
  Check_ID_2:
  SectionGetFlags ${ID_3} $0
  IntOp $0 $0 & ${SF_SELECTED}
  IntCmp $0 ${SF_SELECTED} 0 Done Done
  StrCpy $R0 ${ID_3}
  SectionGetFlags ${ID_1} $0
  IntOp $0 $0 & ${SECTION_OFF}
  SectionSetFlags ${ID_1} $0
  SectionGetFlags ${ID_2} $0
  IntOp $0 $0 & ${SECTION_OFF}
  SectionSetFlags ${ID_2} $0
  Done:
  Pop $0
FunctionEnd

Отправлено: 12:32, 06-02-2011 | #948