【问题标题】:How to show Message when Next button clicked?单击下一步按钮时如何显示消息?
【发布时间】:2019-01-30 23:47:16
【问题描述】:

我创建了我的自定义页面并想知道,当我单击“下一步”按钮时,如何检查我的任何输入是否为空。
流程是:
1. 设置输入值
2.点击下一步
3.如果为空显示“错误,为空。设置所有输入”

我曾尝试使用 nsDialog onChange 和 onClick,但无法得到这个

Function lprConfigServerUserXml
nsDialogs::Create 1018
Pop $0
GetFunctionAddress $0 OnClick
nsDialogs::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 "* 密码 "<br/> Pop $0<br/> ${NSD_CreateText} 0 75u 100% 12u ""@98765439 @Pop $PASSWORD<br/> ${NSD_OnChange} $PASSWORD setPasswordValue<br/> nsDialogs::Show<br/> FunctionEnd`

Function OnClick
Pop $0 # HWND
MessageBox MB_OK "Error, empty. Set all inputs"
FunctionEnd

到现在都没有结果:(

【问题讨论】:

    标签: nsis


    【解决方案1】:

    当用户点击下一步按钮时,页面离开回调函数被调用。您可以调用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
    

    【讨论】:

    • 非常感谢,这正是我要找的!
    猜你喜欢
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    相关资源
    最近更新 更多