This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- custom setup
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Jun 21, 2011
09:53 AM
custom setup
how to use checkbox to select features and its sub features instead of its default look in basic MSI project. please tell me what are the changes to be made in the dialog or which property has to be set to achieve this?:confused:
(1) Reply
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Jun 23, 2011
11:11 AM
What you are asking to do is not easy to achieve. I've done just this in a lot of my projects as I hate the standard MSI Custom dialog with the Advertise option. But it is a pain as the years tick by and you are asked to add new features, take out old, condition some out for certain languages or platforms. Think about those things before you jump in, especially if one of your languages is going to be right to left like Arabic.
What you have to do is design your own CustomSetup Dialog and insert it into your UI sequence in the same place, getting the Next and Back button functionality for a modify as well as a fresh install sorted out for all dialogs affected.
Now each checkbox you add for each feature, must be associated to a property. One will be offered by default. Change the name to an approapriate value and then blank the default value it sets - which is '0' - set it to null (empty).
Lets say you have three features, 'Client', 'ClientSubFeature' and 'Server' with properties 'CLIENT', 'CLIENTSUBFEATURE' and 'SERVER'. Back at the CustomSetup dialog goto the behaviour\Next button and add the following events.
AddLocal ALL 1
Remove Client CLIENT<>1
Remove ClientSubFeature CLIENTSUBFEATURE<>1
Remove Server SERVER<>1
Now if you have sub features, you have to modify the Conditions tab on each of the checkbox controls to ensure, you can't select a subfeature with out the main feature and if you deselect the main feature, the subfeatures are taken out too.
So on your 'ClientSubFeature' checkbox you might have the following conditions:
Disable CLIENT<>1
Enable CLIENT=1
And on the 'Client' checkbox you will need the following EVENTS:
[CLIENTSUBFEATURE] 1 CLIENT=1 //Optional - this will cause the subfeature to be automatically selected when the feature is.
[CLIENTSUBFEATURE] [BLANK] CLIENT<>1
[CLIENTSUBFEATURE] [CLIENTSUBFEATURE] 1
Note in the above example I use a property called 'BLANK' which is as the name suggests, null. The final line in the above example causes the CLIENTSUBFEATURE checkbox to refresh when the CLIENT checkbox is changed.
What you have to do is design your own CustomSetup Dialog and insert it into your UI sequence in the same place, getting the Next and Back button functionality for a modify as well as a fresh install sorted out for all dialogs affected.
Now each checkbox you add for each feature, must be associated to a property. One will be offered by default. Change the name to an approapriate value and then blank the default value it sets - which is '0' - set it to null (empty).
Lets say you have three features, 'Client', 'ClientSubFeature' and 'Server' with properties 'CLIENT', 'CLIENTSUBFEATURE' and 'SERVER'. Back at the CustomSetup dialog goto the behaviour\Next button and add the following events.
AddLocal ALL 1
Remove Client CLIENT<>1
Remove ClientSubFeature CLIENTSUBFEATURE<>1
Remove Server SERVER<>1
Now if you have sub features, you have to modify the Conditions tab on each of the checkbox controls to ensure, you can't select a subfeature with out the main feature and if you deselect the main feature, the subfeatures are taken out too.
So on your 'ClientSubFeature' checkbox you might have the following conditions:
Disable CLIENT<>1
Enable CLIENT=1
And on the 'Client' checkbox you will need the following EVENTS:
[CLIENTSUBFEATURE] 1 CLIENT=1 //Optional - this will cause the subfeature to be automatically selected when the feature is.
[CLIENTSUBFEATURE] [BLANK] CLIENT<>1
[CLIENTSUBFEATURE] [CLIENTSUBFEATURE] 1
Note in the above example I use a property called 'BLANK' which is as the name suggests, null. The final line in the above example causes the CLIENTSUBFEATURE checkbox to refresh when the CLIENT checkbox is changed.
