Archive: Recreate Page


Recreate Page
Hello i am trying to implement dynamic sections manipulation in my setup:
I have some number of predefined invisible sections.
After some manipulations on "components" page, one of invisible sections must become visible so i call e.g.:

SectionSetText $SECTION "Hello"

Of course it doesn't show up on "components" page (page is shown right now) So i need to refresh it somehow!
I've tried to push "Back" button with
SendMessage $BUTTON ${BM_CLICK} 0 0
and then press "Next" in same way (or call Abort in precreation of previous page).
But my setup crashes right after Back is pressed.

Maybe you know some WM_ Message that will cause components page to refresh?
Or i should add it to components treeView manually?

P.S. I know that i could do it with ListBox in nsDialogs but it will be without checkboxes :(

Did you try to move the referred manipulations and the SectionSetText instruction into .onInit function?

Did you try the page functions pre/leave?


Setting section text in .onInit is not suitable for me, because sections must be added when user is already on "components" page.
The problem with refreshing this page, because components TreeView is filled with lines on creation of page (i think so because when i use SectionSetText to reveal new section then press Back and then press Next to return to "components" page new section shows up).
So i just need some solution to forse "components" page to refresh its data in components TreeView.


It is not the nicest method I guess, but the following might work for you:
http://nsis.sourceforge.net/Go_to_a_NSIS_page


Thank you. It may help me.


Hi,

as I am having exactly the same problem (see http://forums.winamp.com/showpost.ph...68&postcount=6 I am interested in if anybody has a working solution for this problem?

I tried the 'Goto RelPage' suggestion but that leads to a crash of the installer.

Refreshing the GUI due to changes when page is already shown is a most common situation or an often needed scenario - would be nice to have a solution for this!

Or can anybody give me a hint how to "work around" this problem?

Thanks,

Gunther