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

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

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


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

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


Привет народ..

Заметил очередную странность в работе программы, суть ее вот в чем::
написал инсталлер с установкой проги на 8 языках в зависимости от выбора чекбоксов..
далее, прикрутил автоопределение языка и в зависимости от языка ОС автоматически проставляется галочка на установку аналогичного языка. При инсталляции все работает вроде исправно, но если запускать деинсталл, то чек бокс проставляется на одну строку в низ, а не туда куда нужно..

Пример кода для инсталла и деинсталла для выбора языка установки в чек-боксах::

Код: Выделить весь код
Function .onInit
  Push $R0
  SetCurInstType 0
  !insertmacro MUI_LANGDLL_DISPLAY
  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "setup.ini"
  StrCpy $1 ${SecMod}
  SetSilent normal

;--------------------------------
# При запуске инсталлятора назначаем секции статус "Отмечена"
  ${If} $LANGUAGE == ${LANG_ENGLISH}
	;IntOp $0 	${SF_SELECTED} // $0
	SectionSetFlags ${SecModFiles1} 1
  ${ElseIf} $LANGUAGE == ${LANG_ROMANIAN}
	SectionSetFlags ${SecModFiles2} 1
  ${ElseIf} $LANGUAGE == ${LANG_GERMAN}
	SectionSetFlags ${SecModFiles3} 1
  ${ElseIf} $LANGUAGE == ${LANG_RUSSIAN}
	SectionSetFlags ${SecModFiles4} 1
  ${ElseIf} $LANGUAGE == ${LANG_ITALIAN}
	SectionSetFlags ${SecModFiles5} 1
  ${ElseIf} $LANGUAGE == ${LANG_CZECH}
    SectionSetFlags ${SecModFiles6} 1
  ${ElseIf} $LANGUAGE == ${LANG_POLISH}
	SectionSetFlags ${SecModFiles7} 1
  ${ElseIf} $LANGUAGE == ${LANG_SPANISH}
	SectionSetFlags ${SecModFiles8} 1
  ${EndIf}


....
Function un.onInit
  !insertmacro MUI_UNGETLANGUAGE
  Push $R0
    StrCpy $1 ${unSecMod}

;--------------------------------
  ${If} $LANGUAGE == ${LANG_ENGLISH}
	;IntOp $0 	${SF_SELECTED} // $0
	SectionSetFlags ${SecModFiles1} 1
  ${ElseIf} $LANGUAGE == ${LANG_ROMANIAN}
	SectionSetFlags ${SecModFiles2} 1
  ${ElseIf} $LANGUAGE == ${LANG_GERMAN}
	SectionSetFlags ${SecModFiles3} 1
  ${ElseIf} $LANGUAGE == ${LANG_RUSSIAN}
	SectionSetFlags ${SecModFiles4} 1
  ${ElseIf} $LANGUAGE == ${LANG_ITALIAN}
	SectionSetFlags ${SecModFiles5} 1
  ${ElseIf} $LANGUAGE == ${LANG_CZECH}
    SectionSetFlags ${SecModFiles6} 1
  ${ElseIf} $LANGUAGE == ${LANG_POLISH}
	SectionSetFlags ${SecModFiles7} 1
  ${ElseIf} $LANGUAGE == ${LANG_SPANISH}
	SectionSetFlags ${SecModFiles8} 1
  ${EndIf}
Как с этим бороться хз, может есть у кого какие мысли ?!
Использую нсис-юникод 2.46.5

Отправлено: 12:50, 29-07-2018 | #2214