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

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

Аватара для Alex S

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


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

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


Добрый вечер всем. Есть вопрос по поводу переноса строки в Control_EDIT. Возникла идея создать страницу готовности к установке по аналогу inno (PreparingPage). За основу взял вариант который решался(и решился(спасибо Flix и MKN)) на этой страничке форума. Суть затеи такова: на сновании выбранных задач инсталляции должен выводиться список, в котором подробно указаны выбранные задачи(язык, ярлыки, путь установки...). Хм... Думал делов-то, при наличии уже имеющихся знаний и тем более готовых решений. Но не тут то было... Пробовал и так $\n и так \n и loop-ил сверху вниз и не вышло.
Что есть...
!define PRODUCT_NAME "My Program"
!define PRODUCT_VERSION "1.0"

!include "MUI2.nsh"
!include "Sections.nsh"
!include "nsDialogs.nsh"
!include "LogicLib.nsh"
!include "FileFunc.nsh"

Page custom PageInit1 PageDestroy1
!insertmacro MUI_PAGE_DIRECTORY
Page custom PreparingPage

;Languages
!define MUI_LANGDLL_ALLLANGUAGES
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_RESERVEFILE_LANGDLL
Function .OnInit
!insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd

LangString PRPAGE_TEXT ${LANG_RUSSIAN} "Всё готово к установке"
LangString PRPAGE_TEXT ${LANG_ENGLISH} "Ready to Install"
LangString PRPAGE_SUBTEXT ${LANG_RUSSIAN} "Программа установки готова начать установку ${PRODUCT_NAME} на ваш компьютер."
LangString PRPAGE_SUBTEXT ${LANG_ENGLISH} "Setup is now ready to begin installing ${PRODUCT_NAME} on your computer."
LangString CUSTPAGE_1_TITLE ${LANG_RUSSIAN} "Выбор языка интерфейса и дополнительных задач"
LangString CUSTPAGE_1_TITLE ${LANG_ENGLISH} "Selecting language and additional tasks"
LangString CUSTPAGE_1_SUBTITLE ${LANG_RUSSIAN} "Выберите язык интерфейса и дополнительные задачи установки."
LangString CUSTPAGE_1_SUBTITLE ${LANG_ENGLISH} "Select the interface language and additional installation tasks."
LangString CUSTPAGE_1GRBOX1_CAPT ${LANG_RUSSIAN} "Язык интерфейса:"
LangString CUSTPAGE_1GRBOX1_CAPT ${LANG_ENGLISH} "Interface language:"
LangString CUSTPAGE_1RADBUT1_CAPT ${LANG_RUSSIAN} "Русский язык"
LangString CUSTPAGE_1RADBUT1_CAPT ${LANG_ENGLISH} "Russian language"
LangString CUSTPAGE_1RADBUT2_CAPT ${LANG_RUSSIAN} "Английский язык"
LangString CUSTPAGE_1RADBUT2_CAPT ${LANG_ENGLISH} "English language"
LangString CUSTPAGE_1GRBOX2_CAPT ${LANG_RUSSIAN} "Дополнительные задачи:"
LangString CUSTPAGE_1GRBOX2_CAPT ${LANG_ENGLISH} "Additional tasks:"
LangString CUSTPAGE_1CHBOX1_CAPT ${LANG_RUSSIAN} "Ярлык на Рабочем столе"
LangString CUSTPAGE_1CHBOX1_CAPT ${LANG_ENGLISH} "Desktop Shortcut"
LangString CUSTPAGE_1CHBOX2_CAPT ${LANG_RUSSIAN} "Ярлык(и) в меню Пуск"
LangString CUSTPAGE_1CHBOX2_CAPT ${LANG_ENGLISH} "Shortcut(s) in the Start menu"
LangString VIBRANO ${LANG_RUSSIAN} "Выбрано:"
LangString VIBRANO ${LANG_ENGLISH} "Selected:"

# Variables
var CustPage1
Var GroupBox1
var Check1
var Check2
Var CheckBox1
Var CheckBox2

Var GroupBox2
var Radio1
var Radio2
Var RadioButton1
Var RadioButton2

var Preparing
Var Preparing_Control_EDIT

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "Main_setup.exe"
InstallDir "$PROGRAMFILES\My Program"

Function PageInit1
nsDialogs::Create 1018
Pop $CustPage1
${If} $CustPage1 == error
Abort
${EndIf}
${If} $LANGUAGE = ${LANG_RUSSIAN}
!insertmacro MUI_HEADER_TEXT $(CUSTPAGE_1_TITLE) $(CUSTPAGE_1_SUBTITLE)
${Else}
!insertmacro MUI_HEADER_TEXT $(CUSTPAGE_1_TITLE) $(CUSTPAGE_1_SUBTITLE)
${EndIf}
; === GroupBox1 (type: GroupBox) ===
${NSD_CreateGroupBox} 1.9u 2.38u 131.65u 43u "$(CUSTPAGE_1GRBOX1_CAPT)"
Pop $GroupBox1
; === RadioButton1 (type: RadioButton) ===
${NSD_CreateRadioButton} 7.9u 13.54u 121.11u 12.31u "$(CUSTPAGE_1RADBUT1_CAPT)"
Pop $RadioButton1
${NSD_SetState} $RadioButton1 1
; === RadioButton2 (type: RadioButton) ===
${NSD_CreateRadioButton} 7.9u 27.54u 121.11u 12.31u "$(CUSTPAGE_1RADBUT2_CAPT)"
Pop $RadioButton2
; === GroupBox2 (type: GroupBox) ===
${NSD_CreateGroupBox} 1.32u 53.38u 131.65u 80.54u "$(CUSTPAGE_1GRBOX2_CAPT)"
Pop $GroupBox2
; === CheckBox1 (type: Checkbox) ===
${NSD_CreateCheckbox} 7.9u 66.08u 121.11u 12.31u "$(CUSTPAGE_1CHBOX1_CAPT)"
Pop $CheckBox1
${NSD_SetState} $CheckBox1 1
; === CheckBox2 (type: Checkbox) ===
${NSD_CreateCheckbox} 7.9u 82.46u 121.11u 12.31u "$(CUSTPAGE_1CHBOX2_CAPT)"
Pop $CheckBox2
${NSD_SetState} $CheckBox2 1
nsDialogs::Show
FunctionEnd

Function PageDestroy1
${NSD_GetState} $RadioButton1 $Radio1
${NSD_GetState} $RadioButton2 $Radio2
${NSD_GetState} $CheckBox1 $Check1
${NSD_GetState} $CheckBox2 $Check2
FunctionEnd



Function PreparingPage
nsDialogs::Create 1018
Pop $Preparing
${If} $Preparing == error
Abort
${EndIf}
; !insertmacro MUI_HEADER_TEXT "" ""
${If} $LANGUAGE = ${LANG_RUSSIAN}
!insertmacro MUI_HEADER_TEXT $(PRPAGE_TEXT) $(PRPAGE_SUBTEXT)
${Else}
!insertmacro MUI_HEADER_TEXT $(PRPAGE_TEXT) $(PRPAGE_SUBTEXT)
${EndIf}
!define MYMULTILINEEDIT_STYLE ${DEFAULT_STYLES}|${WS_TABSTOP}|${ES_AUTOHSCROLL}|${ES_MULTILINE}|${ES_READONLY}
nsDialogs::CreateControl EDIT ${MYMULTILINEEDIT_STYLE} ${WS_EX_WINDOWEDGE}|${WS_EX_CLIENTEDGE} 0u 0u 300u 140u ""
Pop $Preparing_Control_EDIT
Call ShowSelectedItems
nsDialogs::Show
FunctionEnd

Function ShowSelectedItems
SendMessage $Preparing_Control_EDIT ${EM_REPLACESEL} 0 "STR:$(VIBRANO)" ;"STR:$(VIBRANO)$\n" - такой вариант не работает
${If} $Radio1 == 1
; loop:
SendMessage $Preparing_Control_EDIT ${EM_REPLACESEL} 0 "STR:$(CUSTPAGE_1RADBUT1_CAPT)"
;IfErrors +1 loop
${If} $CheckBox1 == 1
SendMessage $Preparing_Control_EDIT ${EM_REPLACESEL} 0 "STR:$(CUSTPAGE_1CHBOX1_CAPT)"
${EndIf}
${EndIf}
FunctionEnd


Section ""
SectionEnd


Что примерно хотел сделать

Отправлено: 20:33, 31-01-2018 | #2183