Skip to content
⌘ NSIS Forum Archive

How to show 2nd custom page after first one.

6 posts

dhiraj3301#

How to show 2nd custom page after first one.

Hi Everyone,

I have 3 custom pages

But, When i click on next butiion control how does the control goes to second custom page? My control does not go to second custom page it will directly starting installing.

I have created 3 .ini files for these 3 custom pages

Page Custom CustomPage_ServerComponents ValidateServerComponents_PageLeaveEvent
Page Custom CustomPage_ServerComponents2 ValidateServerComponents_PageLeaveEvent
Page Custom CustomPage_ClientComponents ValidateClientComponents_PageLeaveEvent

Function CustomPage_ServerComponents
!insertmacro XPUI_HEADER_TEXT "Select Locations" ""

SendMessage $HWNDPARENT ${WM_SETTEXT} 0 "STR: ${PRODUCT_NAME} ${PRODUCT_Version}"

GetDlgItem $1 $HWNDPARENT 1 ;//Enable "Next" button
EnableWindow $1 1
Strcpy $0 ""
SectionGetFlags ${Databse} $0

${if} $0 != "1"
GetDlgItem $0 $HWNDPARENT 1
SendMessage $0 ${WM_SETTEXT} 0 'STR:Install'
${else}
GetDlgItem $0 $HWNDPARENT 1
SendMessage $0 ${WM_SETTEXT} 0 'STR:Next'
${Endif}
FunctionEnd

Can you please suggest solution, for this issue.

Thanks,
Dhiraj
jpderuiter#
Are there any warnings when you compile the script...?

EDIT:
Or errors?
you didn't write a function for the second and third page.
dhiraj3301#
There is no warning.

I have also written functions for second and third page,
Written in same way as that i have written in
Function CustomPage_ServerComponents.

can u please give me some link or document that will give me basic functionality that how to go to next custom page?

Thanks,
Dhiraj
Animaether#
there's nothing special involved in going to the next page - it should 'just work'; that's why the missing code in your example is important.. the issue might be in there somewhere.

!include "nsDialogs.nsh"
OutFile "$%temp%\temp.exe"
Section
SectionEnd
Page Custom PageA
Page Custom PageB
Page Custom PageC
Function PageA
  nsDialogs::Create 1018
  ${NSD_CreateLabel} 0 0 100% 10% "Page A"
  nsDialogs::Show
FunctionEnd
Function PageB
  nsDialogs::Create 1018
  ${NSD_CreateLabel} 0 0 100% 10% "Page B"
  nsDialogs::Show
FunctionEnd
Function PageC
  nsDialogs::Create 1018
  ${NSD_CreateLabel} 0 0 100% 10% "Page C"
  nsDialogs::Show
FunctionEnd 
MSG#
I don't know how UMUI works, but I don't see any commands to actually load the ini files and create a page.
dhiraj3301#
Hi Everyone, My problem is solved,

By writing Following code in second section.

!insertmacro XPUI_INSTALLOPTIONS_INITDIALOG "Server2.ini"
Pop $HWND

Thanks,
Dhiraj