- NSIS Discussion
- Help Button
Archive: Help Button
hanenjom
11th May 2011 18:36 UTC
Help Button
Please can you help me,
i need to add a Help Button, and in my Result i need to have a window (.ini), i have a solution
HelpButton::show /NOUNLOAD "232,231" "Help" "Dialog" "/file=C:\NSIS\.....\file.ini" wrap 20
but i hve in result the .ini in lines no a window.
how can i change the HelpButton.dll to display my file.ini.
think you
Afrow UK
11th May 2011 21:33 UTC
The window only displays text. You can't have it showing a custom page. If you want to have a custom page with help information on it, either put it in another executable and extract and run it or add a custom page and only show it when your help button is pressed (don't need HelpButton for this).
Stu
T.Slappy
12th May 2011 05:39 UTC
I dont entirely understand but isn't there possibility to create dialog with nsDialogs?
jiake
12th May 2011 08:24 UTC
You can use nsWindows, it could create dialog box.
hanenjom
12th May 2011 14:47 UTC
think for your answers,
but my problem is "how could I call a page from a help button that will contain components such as GroupBox and Label".
Please help me
Afrow UK
12th May 2011 15:17 UTC
http://nsis.sourceforge.net/Go_to_a_NSIS_page
- Add a help button (if it's via Resource Hacker then use ButtonEvent plug-in on it)
- On click, set a global Var (i.e. $ShowHelp) to 1
- Jump to your help page
In your help page's show function, call Abort if $ShowHelp != 1. Also ensure you reset $ShowHelp to 0 when you leave the help page.
The only issue really is that when you enter the help page, the back or next buttons won't take you back to where you were when you clicked the Help button. For that reason to be honest it'd be easier to have a pop-up.
Stu
hanenjom
12th May 2011 16:12 UTC
Re
Hi, in fact am little bit confused here, the pop-up you mentioned earlier you mean a message_box or a whole custom page? cause this last one always ,as you know ,contains the three useless button, (next,back and cancel ).
thnks
Afrow UK
12th May 2011 18:06 UTC
If you want a custom page pop-up, use nsWindows (as mentioned already) which is a modified version of nsDialogs. The other option as I said would be to bundle another NSIS EXE which has one custom page and extract and run that (probably messier than nsWindows).
Stu
jiake
13th May 2011 07:03 UTC
Create a pop-up dialog with web control, list view and tree view with checkboxes.
http://forums.winamp.com/attachment....chmentid=48828
http://forums.winamp.com/attachment....chmentid=48829
See this example script.
hanenjom
13th May 2011 10:16 UTC
thx
think you for your help, its working :), i can finally have my custom Dialog :).
thx
hanenjom
13th May 2011 17:29 UTC
button to close
Please i need a button to close my custom popup , and return to the origin page.
i create the button, but i have a problem with the event to add on to close.
can you help me please?
thx
Afrow UK
13th May 2011 18:08 UTC
Send WM_CLOSE to the window (the handle returned from ::Create) using SendMessage.
Stu
jiake
14th May 2011 03:07 UTC
In this example I use $0 multiple times for dialog handle and other controls. If you want to send message to dialog handle, make sure the value of the variable for dialog's handle in dialog creation function is always the same, use the variable only once.
nsWindows::Create $HWNDPARENT 0 ${WS_VISIBLE}|${WS_SYSMENU}|${WS_CAPTION} "Pop-up dialog" 1018
Pop $0 # handle of dialog
If you use $0 for dialog handle, the variable wouldn't be used again in all event funtions of controls on this dialog. I think you should know.
hanenjom
16th May 2011 08:25 UTC
re
hi,
please, I still can not find how to leave the window and return to the calling page via the button :confused:.
I need your help.
thx.
hanenjom
16th May 2011 14:03 UTC
hi,
please, I still can not find how to leave the window and return to the calling page via the button .
I need your help.
thx.
Afrow UK
16th May 2011 14:28 UTC
In your button event use:
SendMessage $handle ${WM_CLOSE} 0 0
Where $handle has been mentioned already.
Stu
hanenjom
27th May 2011 10:14 UTC
re
Hi
I try to do this for my close button
Function help
${NSW_CreateButton} 50% 84% 10% 5% "OK"
Pop $R1
${NSW_OnClick} $R1 CloseCustomDialog
nsWindows::Show
FunctionEnd
Function CloseCustomDialog
SendMessage $HWNDPARENT ${WS_CLOSE} 0 0
FunctionEnd
and it's still not working :stare:
Please help me.
Afrow UK
27th May 2011 10:23 UTC
It's WM_CLOSE not WS_CLOSE. Where did you get WS_CLOSE from? You should be seeing a compiler warning "unknown variable/constant "{WS_CLOSE}" detected, ignoring" if you haven't defined WS_CLOSE. Don't ignore ANY compiler warnings.
Stu
hanenjom
27th May 2011 10:52 UTC
re
if i use ${WM_Close} , i will close the window for help and the parnet window ...
Afrow UK
27th May 2011 14:27 UTC
That's because you're using $HWNDPARENT which is a handle to the NSIS window. You want the handle returned from nsWindow::Create as we have already explained.
Stu
hanenjom
30th May 2011 11:08 UTC
re
thx for your answers, now i can close my Dialog.
juste my problem is how retur to the parent window?
I have a custom page, when i click in my help button i lost my custom page , she disappears.
how could I stay on the same custom page during the call and help when I close my dialog?
can you help me please.
hanenjom
30th May 2011 11:43 UTC
hi, please i use the help button , but i have a problem,
when I click in my help button I lost my parent page and I have a other page,
how can I still in my parent Page.
my parent page is a custom page.
I use this code :
when i click in my button help i call "CreateHelpButton"
Function CreateHelpButton
nsDialogs::Create 1018
Pop $0
StrCmp $0 error 0 +2
Abort
call CreateCustomDialog
nsDialogs::Show
FunctionEnd
Function CreateCustomDialog
Pop $0
nsWindows::Create $0 0 ${WS_VISIBLE}|${WS_SYSMENU}|${WS_CAPTION} "Help dialog" 1018
Pop $1
${NSW_SetWindowSize} $1 500 350
${NSW_CenterWindow} $1 $HWNDPARENT
StrCmp $1 error 0 +2
Abort
EnableWindow $0 0
${NSW_CreateGroupBox} 3% 4% 90% 10% "blabal"
Pop $R0
${NSW_CreateLabel} 8% 8% 70% 5% "blabal"
Pop $R1
${NSW_CreateGroupBox} 3% 19% 90% 10% "blabal"
Pop $R2
${NSW_CreateLabel} 8% 23% 70% 5% "blabal"
Pop $R3
${NSW_CreateGroupBox} 3% 34% 90% 10% "blabal"
Pop $R4
${NSW_CreateLabel} 8% 38% 70% 5% "blabal"
Pop $R5
${NSW_CreateGroupBox} 3% 49% 90% 10% "blabal"
Pop $R6
${NSW_CreateLabel} 8% 53% 70% 5% "blabal"
Pop $R7
${NSW_CreateGroupBox} 3% 64% 90% 10% "blabal"
Pop $R8
${NSW_CreateLabel} 8% 68% 70% 5% " blabal"
Pop $R9
${NSW_CreateButton} 50% 84% 10% 5% "OK"
Pop $R1
${NSW_OnClick} $R1 CloseCustomDialog
nsWindows::Show
FunctionEnd
Function CloseCustomDialog
SendMessage $1 ${WM_CLOSE} 0 0
FunctionEnd