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

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

Аватара для kotkovets

Ветеран


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

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


silione,
Ну здесь, уже не прокатит трюк фиктивного отключения группы - в наличие неопределенные состояния групп, отсюда и глюки.
1. Нужно определить начальное состояние секций и групп.
2. Разработать логику переключения и рулить флагами секций.
И дальше "прыгать" по логическим меткам (Это вечная проблема с секциями в NSIS).
читать дальше »
Код: Выделить весь код
!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 "Компоненты" IDG

Section "Компонент №1" ID_1
   SectionIn 1
SectionEnd

Section /o "Компонент №2" ID_2
SectionEnd

SectionGroupEnd

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

Section "Компонент №3" ID_3
   SectionIn 1
SectionEnd

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

SectionGroupEnd

Function .onInit
  Push $0
  StrCpy $R0 ${ID_1}
  SectionGetFlags ${ID_1} $0
  IntOp $0 $0 | ${SF_SELECTED}
  SectionSetFlags ${ID_1} $0
  SectionGetFlags ${ID_2} $0
  IntOp $0 $0 & ${SECTION_OFF}
  SectionSetFlags ${ID_2} $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
  Goto Done
  Check_ID_1:
  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
  Done:
  Pop $0
FunctionEnd

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:45, 03-02-2011 | #944