If you've gone and declared all your variables as Global, this would cause havoc if any of the included Procedures contain the same variable names so by using Protected, even if you have made all your variables Global there will be no mix ups.
Normally the variables inside a Procedure are in their own scope but if you use Global, they are exposed.
Code: Select all
x=10
Procedure Test()
x=999
Debug x
EndProcedure
Debug x
Test()
Debug x
Now declare x as Global...
Code: Select all
Global x
x=10
Procedure Test()
x=999
Debug x
EndProcedure
Debug x
Test()
Debug x
Now make x Protected...
Code: Select all
x=10
Procedure Test()
Protected x
x=999
Debug x
EndProcedure
Debug x
Test()
Debug x