Codi i Dades: Privat o Públic


Als projectes visuals, totes les dades i constants dels objectes Window, MDIWindow o DialogBox són privades, és a dir, només accessibles a l'objecte i els seus controls fill. Per tal de compartir les dades amb altres objectes del projecte, afegiu fitxers Include o objectes Mòdul. Els Mòduls són objectes de codi, que significa que no tenen cap finestra ni poden contenir controls, però tot el codi que hi ha a dins és Public per defecte, és a dir, comú a tot el projecte (això NO és aplicable a les macros, que només són visibles dins la finestra o mòdul on estan definides). Si voleu que les dades d'un mòdul siguin privades, feu el següent:

Per projectes visuals:

Poseu la propietat PublicData a FALSE

Per projectes clàssics:

Desmarqueu l'opció Fes globals totes les variables de les Propietats del projecte


D'altra banda, els fitxers Include també són comuns a tot el projecte si els afegiu utilitzant les opcions de menú corresponents. És a dir, per als fitxers include que pertanyin al MASM32 SDK o a la programació de drivers, utilitzeu l'opció de menú "Projecte->Afegeix fitxers Include (*.inc)...", mentre que per altres fitxers include que desitgeu incloure (y que hauran d'estar a la carpeta del projecte) utilitzeu l'opció de menú "Projecte->Afegeix Fitxers...". Els fitxers include són els més apropiats per tal de contenir macros i/o estructures que hagin de ser globals a tot el projecte.

Per als objectes Window, MDIWindow i DialogBox, l'Easy Code declara els procediments com a Private per defecte, mentre que per als objectes Module els declara com a Public. Com que l'Easy Code ignora la directiva Option Proc, tots els procediments són Public, si no es declaren explícitament com a Private, per tal que puguin ser accedits per qualsevol altre objecte del projecte. De fet, tots els procediments són Public per defecte si no es declaren Private ni Public, per tant, els procediments següents són exactament iguals:

AnyName Proc
    Ret
AnyName EndP

i

AnyName Proc Public
    Ret
AnyName EndP


Si voleu que un procediment sigui privat, heu d'afegir-li la corresponent paraula reservada (Private), i llavors només serà accessible dins de l'objecte on es troba:

AnyName Proc Private
    Ret
AnyName EndP

Per tant, si poseu la propietat PublicData a FALSE (projectes visuals), o desmarqueu l'opció Fes globals totes les variables (projectes clàssics), i tots els procediments són declarats com a Private, tindreu un mòdul privat, és a dir, només accessible des del propi mòdul. D'altra banda, posant la propietat PublicData a TRUE (projectes visuals), o marcant l'opció Fes globals totes les variables (projectes clàssics), i no declarant com a Private cap dels seus procediments, donarà com a resultat un mòdul públic, on les dades i el codi seran accessibles des de qualsevol altre objecte del projecte.

És una bona pràctica mantenir com a Private tots els procediments d'un objecte finestra (projectes visuals) i afegir un o més mòduls per compartir el codi i les dades que siguin comunes. D'aquesta manera el vostre codi serà més clar, semblant a llenguatges de més alt nivell, i menys exposat a errors. Així funciona l'Easy Code quan escriu codi per un procediment: tots els procediments d'un objecte finestra són declarats Private (a menys que els feu Public), mentre que tots els procediments d'un objecte mòdul són declarats Public (a menys que els feu explícitament Private). De fet, l'Easy Code no escriu ni Public ni Private, la qual cosa significa que són Public.

OBSERVACIONS: L'Easy Code se'n cuida dels prototips de tots els procediments existents al projecte. Per tant, NO CAL escriure ni incloure cap sentència Proto, per què no es necessiten en els projectes de l'Easy Code.

IMPORTANT: Recordeu que l'Easy Code ignora la directiva Option Proc, per tant, per tal que un procediment sigui privat, cal que inclogui la paraula reservada corresponent (Private). Si no el declareu ni Public ni Private, el procediment serà considerat Public.