Привет народ..
Заметил очередную странность в работе программы, суть ее вот в чем::
написал инсталлер с установкой проги на 8 языках в зависимости от выбора чекбоксов..
далее, прикрутил автоопределение языка и в зависимости от языка ОС автоматически проставляется галочка на установку аналогичного языка. При инсталляции все работает вроде исправно, но если запускать деинсталл, то чек бокс проставляется на одну строку в низ, а не туда куда нужно..
Пример кода для инсталла и деинсталла для выбора языка установки в чек-боксах::
Код:
![Выделить весь код](images/misc/selectcode.png)
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}
Как с этим бороться хз, может есть у кого какие мысли ?!
![Clever Man](images/smilies/new/clever-man.gif)
Использую нсис-юникод 2.46.5