Fonction Optimiser(Invariant) EnumererProprietes(Numero : Entier, TypePropriete : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
Le paramètre TypePropriete reçoit l'objet représentant le type de la valeur de la propriété. Le paramètre EstNul reçoit Vrai si la propriété accepte Nul. Le paramètre Aide reçoit le libellé d'aide contextuelle de la propriété. Si le type de la propriété est Enumere, alors le paramètre NomEnumere reçoit le nom de l'énuméré.
Cette méthode permet d'énumérer à la fois les propriétés statiques et les propriétés dynamiques de l'objet. L'énumération commence par les propriétés statiques puis enchaîne sur les propriétés dynamiques.
Type Personne Defaut ProprietesDynamiques
/***************************************/
Constructeur();
NomPersonne : Caractere;
DateDeNaissance : Date;
Fin Type
Variable
/******/
P : Personne;
Prop : Nul Ou Caractere;
Numero : Entier;
Principal
/*******/
Debut
...
/* Enumere les proprietes de 'P'. */
Prop=P.EnumereProprietes(++Numero, ?, ?, ?, ?);
TantQue Prop!=Nul Faire
Selon Prop.EstInstanceDe Faire
Cas Entier Faire
Ecran.Ecrire(Prop + "=" + Entier(P.LirePropriete(Prop)));
Fin Cas
Cas Reel Faire
Ecran.Ecrire(Prop + "=" + Reel(P.LirePropriete(Prop)));
Fin Cas
Cas Caractere Faire
Ecran.Ecrire(Prop + "=" + Caractere(P.LirePropriete(Prop)));
Fin Cas
Cas Date Faire
Ecran.Ecrire(Prop + "=" + Date(P.LirePropriete(Prop)));
Fin Cas
Defaut
Ecran.Ecrire(Prop + "=?");
Fin Defaut
Fin Selon
Prop=P.EnumereProprietes(++Numero, ?, ?, ?, ?);
Fin TantQue
...
Fin Principal
- | - | - | - | - | - | - | - | - |