Old 8th October 2013, 12:07   #1
Smurge
Junior Member
 
Join Date: Apr 2008
Posts: 21
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

HTML Code:
!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
Smurge is offline   Reply With Quote
Old 8th October 2013, 15:02   #2
Afrow UK
Moderator
 
Afrow UK's Avatar
 
Join Date: Nov 2002
Location: Surrey, England
Posts: 8,434
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
Afrow UK is offline   Reply With Quote
Old 9th October 2013, 10:11   #3
Smurge
Junior Member
 
Join Date: Apr 2008
Posts: 21
I tried something similar, but this doesn't work also.
When i set the define above the sections
Quote:
!define g1o2 1
the compiler exits with:

Quote:
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
Quote:
!define: "g1o2" already defined!
Error in script "stdin" on line 39 -- aborting creation process
Smurge is offline   Reply With Quote
Old 9th October 2013, 15:45   #4
Afrow UK
Moderator
 
Afrow UK's Avatar
 
Join Date: Nov 2002
Location: Surrey, England
Posts: 8,434
If you're going to define it yourself, you have to remove the token from the Section line.

Stu
Afrow UK is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Developer Center > NSIS Discussion

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump