jai123
1st August 2012 14:14 UTC
Skip a section without deselecting components checkbox
Hi,
I am trying to skip a section if another section has been selected. However, I do not want to uncheck the section's checkbox.
I tried creating a label for the section, and just adding an if statement within the other sections body. For instance,
Section "Interface" SecCNC_Interface
!insertmacro SectionFlagIsSet ${SecVision_System} ${SF_SELECTED} exit_section continue
continue:
...
...
...
exit_section:
SectionEnd
Section /o "Vision System" Sec2
...
...
...
SectionEnd
it compile, but it thoughs a warning saying
unknown variable/constant "{SecVision_System}" detected, ignoring (macro:SectionFlagIsSet:2)
Any idea what is happening? how can I implement the functionality I am looking to use?
jai123
1st August 2012 14:28 UTC
Sorry I just realized that I did not post the code properly. my code uses the correct tag for SectionFlagIsSet; it uses Sec2
Afrow UK
1st August 2012 14:35 UTC
Sec2 is defined later on in the script i.e. it is not yet defined when the compiler is parsing your SectionFlagIsSet code.
If Sec2 has to be after, you will have to use its actual value instead which is the zero based section index.
Also you can use ${If} ${SectionIsSelected} instead of the SectionFlagIsSet macro (may look a bit tidier).
Stu
jai123
1st August 2012 15:05 UTC
Afrow UK, I am really not sure what is the zero based section index. Can you further delve on how it works?
jai123
1st August 2012 16:35 UTC
I am using the code below to index Sec2 label as 2, and it is not updating register $0. Any idea where is the problem?
Thanks
SectionGroup "GroupSection" GrpSec1
Section "Section1" Sec1
Push $0
SectionGetFlags 2 $0
messagebox MB_OK "SectionGetFlag $0"
${IfNot} ${SectionIsSelected} $0
...
${EndIf}
Pop $0
SectionEnd
Section "Section 2" Sec2
...
SectionEnd
SectionGroup
MSG
1st August 2012 19:13 UTC
Remove the sectiongetflags command, and do ${If} ${SectionIsSelected} directly on the section ID.
Afrow UK
1st August 2012 20:21 UTC
Originally posted by jai123
Afrow UK, I am really not sure what is the zero based section index. Can you further delve on how it works?
The zero based section index is an integer value that identifies the section; 0 is the first section, 1 is the 2nd section and so on. With your code Sec2 will be defined by the compiler with a value of 1. Therefore just use 1 in your code instead of ${Sec2}:
${IfNot} ${SectionIsSelected} 1
...
Stu
jai123
1st August 2012 21:52 UTC
Hey Afrow, I have followed your advice, and it still does not work. I have tried both using index 1 and 2 (assuming that the group section is also counted). Any ideas where it could be the problem?