Как показать сообщение при нажатии кнопки «Далее»? - PullRequest
0 голосов
/ 30 января 2019

Я создал свою пользовательскую страницу и хочу знать, как проверить, если какой-либо из моих входов пуст, когда я нажимаю кнопку Далее.Поток это:1. Установите входные значения2. нажмите далее3. Если пусто, показать «Ошибка, пусто. Установить все входы»

Я пытался с nsDialog onChange и onClick, но не смог получить это

Function lprConfigServerUserXmlnsDialogs::Create 1018Pop $0GetFunctionAddress $0 OnClicknsDialogs::OnClick $0

${NSD_CreateLabel} 0 5u 75% 10u "* Server Address "Pop $0${NSD_CreateText} 0 15u 100% 12u ""Pop $SERVER_ADDRESS${NSD_OnChange} $SERVER_ADDRESS setSeverValue${NSD_CreateLabel} 0 35u 75% 10u "* User Name "Pop $0${NSD_CreateText} 0 45u 100% 12u ""Pop $USER_NAME${NSD_OnChange} $USER_NAME setUserValue $ {NSD_CreateLabel} 0 65u 75% 10u "* Password" <br/> Pop $ 0 <br/> $ {NSD_CreateText} 0 75u 100% 12u "" <br/> Pop $ PASSWORD <br/> $ {NSD_OnChange} $ ПАРОЛЬsetPasswordValue <br/> nsDialogs :: Show <br/> FunctionEnd`

Function OnClickPop $0 # HWNDMessageBox MB_OK "Error, empty. Set all inputs"FunctionEnd

Пока никаких результатов пока нет: (

1 Ответ

0 голосов
/ 30 января 2019

Функция обратного вызова при выходе из страницы вызывается, когда пользователь нажимает кнопку «Далее».Вы можете позвонить Abort, чтобы предотвратить переход пользователя на следующую страницу в этом обратном вызове.

!include nsDialogs.nsh
!include LogicLib.nsh

Page Custom MyCustomPageCreate MyCustomPageLeave
Page Directory
Page InstFiles

Var NameCtrl
Var NameString

Function MyCustomPageCreate
nsDialogs::Create 1018
Pop $0
${NSD_CreateLabel} 0 0 100% 12u "Name:"
Pop $0
${NSD_CreateText} 0 13u 100% 12u "$NameString"
Pop $NameCtrl
nsDialogs::Show
FunctionEnd

Function MyCustomPageLeave
${NSD_GetText} $NameCtrl $NameString
${If} $NameString == ""
    MessageBox MB_ICONSTOP "You must provide a name!"
    Abort
${EndIf}
FunctionEnd

Section
; TODO: Write $NameString to config file
SectionEnd
...