cDessin est une classe
nDess est un entier = 0 // nombre d'objets
tDess est un tableau de nDess objets dynamiques // tableau des objets
...
PUBLIC CONSTANT
_FORME est un entier = 0
_POLYGONE est un entier = 1
_CERCLE est un entier = 2
...
FIN
FIN
// nouvel objet dans le dessin
PROCEDURE Ajoute(pnType=::_FORME)
oo est un objet dynamique
// ajoute une ligne au tableau
nDess=Dimension(tDess,nDess+1)
// affecte le nouvel objet
SELON pntype
CAS ::_FORME:
tdess[ndess] = allouer une forme(<params>)
CAS ::_POLYGONE:
tdess[ndess] = allouer un polygone(<params>)
...
FIN
RENVOYER ndess
// nouvel objet dans le dessin
PROCEDURE Ajoute(pnType=::_FORME)
oo est un objet dynamique
// ajoute une ligne au tableau
nDess=Dimension(tDess,nDess+1)
// affecte le nouvel objet
SELON pntype
CAS ::_FORME:
tdess[ndess] = allouer une forme(<params>)
CAS ::_POLYGONE:
tdess[ndess] = allouer un polygone(<params>)
...
FIN
RENVOYER ndess
// libération des ressources
PROCEDURE Destructeur
i est un entier
POUR i=1 à nDess
liberer tdess[i]
FIN
Libérer tdess
oDess est un cDessin
nForme=oDess:Ajoute(cDessin::_FORME)
nPolygone=oDess:Ajoute(cDessin::_POLYGONE)
// manipule la forme
oDess:tdess[nforme]:méthode_de_forme(<param>)
// manipule le polygone
oDess:tdess[npolygone]:méthode_de_polygone(<param>)
Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=12&topic_id=991&post_id=4046