Dans ce module j'avais déclaré une variable CountItem.
Malheureusement plus loin dans ma procédure, j'ai mal orthographié CountItem qui est devenu CounItem.
Je code toujours avec EnableExplicit en début de code et je n'ai pas eu le message
Avec 'EnableExplicit', les variables doivent etre explicitement declarees: CounItem
Voici un exemple de code plus simple que mon module.
Dans cet exemple je déclare la variable Dummy. Dans la procédure Add(), Dummy devient Dumy.
Code : Tout sélectionner
EnableExplicit
DeclareModule Foo
Declare Add(a,b)
EndDeclareModule
Module Foo
Global Dummy
Procedure Add(a,b)
; L'intrus est ici
Dumy = 3
ProcedureReturn a+b + Dummy
EndProcedure
EndModule
UseModule Foo
Debug add(2,3)

Un module est un espace de nom qui représente un moyen de séparer ses éléments au sein du code de telle sorte à éviter les conflits. Une variable dans un module ne se retrouvera pas en conflit avec une variable du code qui utilisera ce module.
La fonctionnalité EnableExplicit aurait du être placée à l'intérieur du module pour me prévenir des erreurs de frappes ou des variables non déclarées.
Code : Tout sélectionner
DeclareModule Foo
EnableExplicit
..
..