Skip to content
⌘ NSIS Forum Archive

SectionIsSelected, unknown variable

4 posts

Smurge#

SectionIsSelected, unknown variable

Hello

I try to use the "SectionIsSelected" macro from the logiclib.nsh, but it seems not to work with Sections that appear below the IF function.

In my example the MessageBox "g1o2_unselected" never appear. The compiler returns the warning:
unknown variable/constant "{g1o2}" detected, ignoring (macro:_SectionFlagIsSet:2)

So it appears that this IF only work when it is bellow the dependent section.
Is this a limitation of the SectionIsSelected macro? Is there a workaround?

Any help is appreciated

!include "Sections.nsh"
!include "logiclib.nsh"

;--------------------------------
Name "Section Selected"
OutFile "section_selected.exe"
RequestExecutionLevel user
;--------------------------------
; Pages
Page components
Page instfiles
;--------------------------------
; Sections

Section !Required
  SectionIn RO
SectionEnd

Section "Group 1 - Option 1" g1o1
	
${If} ${SectionIsSelected} ${g1o2}
MessageBox MB_OK g1o2_selected
${Else}
MessageBox MB_OK g1o2_unselected
${EndIf}

SectionEnd


Section /o "Group 1 - Option 2" g1o2
	
${If} ${SectionIsSelected} ${g1o1}
MessageBox MB_OK g1o1_selected
${Else}
MessageBox MB_OK g1o1_unselected
${EndIf}

SectionEnd
Afrow UK#
Where you have ${g1o2}, g1o2 has not yet been defined. You will either have to define it yourself before or just substitute it with the value it would end up having (the section index or 1 in this case).

Stu
Smurge#
I tried something similar, but this doesn't work also.
When i set the define above the sections
!define g1o2 1
the compiler exits with:

Section: "Group 1 - Option 2" ->(g1o2)
Error: "g1o2" already defined, can't assign section index!
Error in script "stdin" on line 33 -- aborting creation process
when i put the define below the sections
!define: "g1o2" already defined!
Error in script "stdin" on line 39 -- aborting creation process
Afrow UK#
If you're going to define it yourself, you have to remove the token from the Section line.

Stu