PDA

View Full Version : Insert Installscript UI in Basic MSI sequence



redangel
07-04-2007, 08:54 AM
Hi everybody.:)
I'm new here, and I have studied InstallShield for the last 3 months. Now I have to build the Setup of my corporation, which has specificities.

The Basic MSI project suits best for me.
I had to create my own Dialog under Installscript, because there's no way (as far as I know) to create such a Dialog with dynamically-displayed(or not) RadioButtons with the editor.
Then I created a Custom Action which calls this InstallScript function.

So here's my problem: I want this sequence:
InstallWelcome
MyLanguageSelection (Custom Installscript, AskOptions to be precise)
ReadyToInstall

The best I could do is to call MyLanguageSelection as a DoAction on the Next and Previous buttons of InstallWelcome and ReadyToInstall. Using an Msi property, I know if the Previous, Next or Cancel button is clicked in the AskOptions UI.

BUT! But there's no way the InstallWelcome disapears when I call my DoAction... I mean, my custom Dialog comes, but if I move this one, I still can see the InstallWelcome, or ReadyToInstall dialog behind!:eek:
And that's awful! I really need to make my dialog MODAL, but I don't know how.

Even if I state EndDialog in the Next button of InstallWelcome, it calls the DoAction before closing itself, even if the DoAction is under the EndDialog.

Any solution would be really appreciated, I lost an entire day on the community to find a solution, and so far, no way!

Please consider my problem, and thanks in advance :)
Regards

gridman
07-04-2007, 07:00 PM
When you are editing the behaviors for a dialog, there are two functions you can choose in a Control Event, NewDialog and SpawnDialog. NewDialog removes the current dialog and displays the new one you specify. SpawnDialog leaves the old dialog and displays the new one as a child of the current one. So, it sounds like to me you are using SpawnDialog when you should be using NewDialog.

redangel
07-05-2007, 07:14 AM
Hi thank you very much for giving your attention :)

As I said, my dialog is InstallScripted, and I'm callin' it with a custom action in a DoAction, not a NewDialog or a SpawnDialog.

But maybe there's a way to state if an InstallScript Dialog is to be called as a Spawn or NewDialog? Do you know an MSI property or function to state that, please? :)

Thanks again.

RobertDickau
07-05-2007, 09:31 AM
A project that uses both MSI dialog boxes and InstallScript dialog boxes doesn't flow very smoothly, as you've seen, since they use completely different underlying technologies. Is it an option to use a custom MSI dialog box?

redangel
07-06-2007, 04:11 AM
Thanks for your presence here, Robert!

Yeah I can see that's a bad way to combine MSI and InstallScript, but as you might have noticed, I'd like to use as much Visual MSI as I can, and just "patch" my Setup with as few InstallScript as I can.

Do you have an idea of how I can manage my radiobuttons in the dialog editor? (I'm afraid there's no way to hide some of them conditionnally...)

You never had to choose a language between several, but the several languages displayed are displayed dynamically?

I guess another way to do could be that I create my own Dialog in a dll, and import it in the Dialog editor. But would it be possible to pass some arguments to it? (like MSI properties?)

Thanks for replying! ;)

redangel
07-09-2007, 07:36 AM
Hi again.
No idea at all?? Nobody ever had to create a dynamically radiobuttoned dialog? :eek:

RobertDickau
07-09-2007, 01:13 PM
If nothing else (and for this particular case there may be nothing else), you can modify the in-memory MSI database to perform some UI changes, about which please see this newsletter tip: http://www.macrovision.com/company/news/newsletter/tips/msiaccess.shtml.