Page 1 of 1
UnuseModule cases
Posted: Thu Jul 07, 2016 7:41 pm
by Paradox
Code: Select all
Procedure example()
UseModule MTest
If o
UnuseModule MTest
ProcedureReturn
EndIf
UnuseModule MTest
EndProcedure
Procedure example()
UseModule MTest
If o
ProcedureReturn
EndIf
UnuseModule MTest
EndProcedure
What correct?
Re: UnuseModule cases
Posted: Thu Jul 07, 2016 8:09 pm
by mhs
I would say this one:
Code: Select all
Procedure example()
UseModule MTest
If o
ProcedureReturn
EndIf
UnuseModule MTest
EndProcedure
or if it fits better:
Code: Select all
UseModule MTest
Procedure example()
...
EndProcedure
Procedure example2()
...
EndProcedure
UnuseModule MTest
Re: UnuseModule cases
Posted: Thu Jul 07, 2016 8:27 pm
by Lunasole
UseModule/UnuseModule are compiler directives, generally they are not added and executed as real code in resulting exe.
So doesn't matter, both variants are OK (the same with Macro/UndefineMacro for example)
See following example, module variable becomes unaccessible even after 2nd example where UnuseModule is placed where it never "executed"
Code: Select all
EnableExplicit
DeclareModule MTest
A.l
EndDeclareModule
Module MTest
EndModule
Procedure example()
UseModule MTest
Protected o
If o
UnuseModule MTest
ProcedureReturn
EndIf
UnuseModule MTest
EndProcedure
Procedure example2()
UseModule MTest
Protected o = #True
If o
Debug A
ProcedureReturn
EndIf
UnuseModule MTest
EndProcedure
example()
example2()
Debug A