Als projectes
visuals,
totes les dades i constants dels objectes Window,
MDIWindow
o DialogBox
són privades, és a dir, només
accessibles al propi objecte
i als seus controls fill. Per tal de compartir les dades amb altres
objectes del projecte, podeu afegir 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ò totes les
variables
i procediments que hi ha a dins són Public
per defecte, és a dir, comuns a tot el projecte.
Això NO és aplicable a les macros
ni
a les estructures, que només
són visibles
dins la finestra o mòdul
on estan definides (a menys que es defineixin en un fitxer
include com s'explica tot seguit).
Els fitxers
Include també poden ser comuns a tot el
projecte
si s'afegeixen de la manera correcta. Si voleu que un fitxer
Include sigui comú a tot el projecte,
feu el següent:
Per a fitxers
include del MASM32 SDK o de programació
de drivers, utilitzeu l'opció
de
menú "Projecte=>Afegeix
fitxers Include (*.inc)..."
Si s'afegeixen d'aquesta manera, els fitxers include
s'inclouen sempre quan es compilen tots els altres fitxers
del projecte (finestres i mòduls), per tant, no poden tenir
procediments ni declaracions de variables, altrament, es
produiran errors de redefinició (uns bons exemples de
fixters include són els que vénen amb el MASM32
SDK).
D'altra banda, els fitxers include són
molt útils per
a definir macros i/o estructures que hagin de ser comuns a tot
el projecte (per exemple, el fitxer Common.inc del
projecte NetMon, a la carpeta Examples).
Per a qualsevol altre tipus de
fitxer include, utilitzeu l'opció de menú "Projecte=>Afegeix
Fitxers..." (si el fitxer és en una
altra carpeta,
serà copiat a la carpeta del projecte)
Els objectes Mòdul
són propis de
l'Easy Code i han d'estar estructurats correctament per evitar
errors de programació. Per tal que els mòduls
funcionin degudament, cal tenir en compte una regla
molt important:
Les seccions .Const,
.Data?
i .Data,
han d'estar SEMPRE
abans de la secció .Code
de la
manera següent:
Un mòdul pot ser molt útil
per
contenir variables i procediments que siguin referenciats per
qualsevol altre objecte (finestra o mòdul), atès
que
totes les seves variables i procediments són comuns a tot el
projecte. Tanmateix, si voleu
que les dades d'un mòdul
siguin privades, feu el següent:
.Const
De fet, l'ordre de les seccions .Const,
.Data?
i .Data
no té cap importància,
el que és imprescindible és que només
hi
hagi una secció .Code
dins d'un mòdul i que sigui l'última de totes les
seccions.
.Data?
.Data
.Code
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
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 fitxers Include (o 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.