PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Attribut "Note" sur les structure
Attribut "Note" sur les structure
Débuté par Chronocoll_Bernard, 23 nov. 2025 09:16 - 7 réponses
Membre enregistré
20 messages
Posté le 23 novembre 2025 - 09:16
J'ai une structure, je voulais documenter chaque membre de cette strcture

MaStructure est une structure <Note = "Ma structure de test">
Membre1 est une chaîne <note = "le membre numéro un">
Membre2 est une chaîne <note = "le membre numéro deux">
Membre3 est une chaîne <note = "le membre numéro trois">
FIN

Quand je fais :
MaDéfinition = RécupèreDéfinition(MaStructure )
Info(MaDéfinition.Nom, MaDéfinition.AttributNote)

J'ai bien le nom et la note de ma structure qui apparaissent dans l'info.

mais si je fais :
MaDéfinition = RécupèreDéfinition(MaStructure.Membre1 )
Info(MaDéfinition.Nom, MaDéfinition.AttributNote)

Là, plus rien de correct ne s'affiche.

Question :Puis je récupérer un commentaire de type <Note> d'un membre de structure ?
L'idée finale était à l'origine de récupérer :
I_NumMembre est un entier = 3
MaDéfinition = RécupèreDéfinition({"MaStructure.Membre"+I_NumMembre} )
Info(MaDéfinition.Nom, MaDéfinition.AttributNote)


Merci de m'avoir lu et compris jusqu'ici !! ;) ;)
Membre enregistré
20 messages
Posté le 23 novembre 2025 - 10:27
Question subsidiaire :
Peut on parcourir les membres d'une structure avec une boucle du genre POUR TOUT ?
Membre enregistré
4 325 messages
Posté le 23 novembre 2025 - 12:03
Bonjour,
D'après la doc, Note concerne les membres de classe. Le problème vient peut être de là.
En ce qui concerne le parcours des membres, c'est possible (pour une classe, en ce qui concerne les structures, il faut vérifier,) il suffit de parcourir la définition via une description de variable.
A la volée :
oMembreComposant est une Description de Variable
oDefComposant est une Definition
clUnComposant est CComposant

oDefComposant = RécupèreDéfinition(clUnCOmposant)

POUR TOUT oMembreComposant de oDefComposant
TraiterMembre()
FIN


--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Message modifié, 23 novembre 2025 - 12:05
Membre enregistré
4 325 messages
Posté le 23 novembre 2025 - 12:43
Edit : Lire
POUR TOUT oMembreComposant de oDefComposant.Variable


--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Membre enregistré
20 messages
Posté le 24 novembre 2025 - 06:01
Parfait, comme d'habitude, Voroltinquo. Effectivement, ca fonctionne aussi avec une structure et non pas seulement pour un composant.

Voila donc mon code qui rempli un tableau associatif avec le contenu de la balise <Note> de chaque membre de ma structure :

oMembreStructure est une Description de Variable
oDefStructure est une Definition
MaStructureConv est une St_ConventionNommage
// Efface le tableau associatif
Glo_Tab_Note.SupprimeTout()
// Récupère la définition complète de la structure
oDefStructure = RécupèreDéfinition(MaStructureConv)
// Parcours de chaque membre
POUR TOUT oMembreStructure de oDefStructure
Glo_Tab_Note[oMembreStructure.Nom] = oMembreStructure.AttributNote
FIN


En sortie, un beau tableau associatif des 221 conventions de nommage.

Merci qui ? merci Voroltinquo. :merci:
Membre enregistré
34 messages
Posté le 21 décembre 2025 - 18:10
Bonjour Chronocoll_Bernard,

Je viens de tomber sur ce sujet et c'est la première fois que je trouve qqn qui utilise l'AttributNote sur le forum. Je me trouve confronté à problème bizarre que je n'arrive pas à m'expliquer :

Voici un exemple de classe avec l'utilisation de l'attribut
MTableau_de_paramètre est une Classe <note="Instance tableau de modèle:MParamètre">

implémente I_Composite_avec_parent
hérite de CComposite_avec_parent

PRIVÉ
m_tab_i_Paramètre est un tableau de I_Composant <note="Tableau de modèle:MParamètre">

FIN


quand je fait le code test suivant pour récupérer les AttributNote :

gDef est une Definition = RécupèreDéfinitionType(g_su_Nom_classe_composite)

pour TOUT Item de gDef.Variable
Trace(Item.AttributSérialise + " | " + Item.AttributNote)
FIN


J'obtiens la trace suivante :





Les autres membres présent dans la trace viennent des classes héritées

Quand le membre de la classe est un type simple ou un membre de type classe ou interface j'arrive à récupérer AttributNote, par contre pour un membre de type tableau ça ne marche pas, j'ai vérifier sur d'autres classe est c'est la même chose, si je change le type du membre l'AttributNote est accessible.

Avez vous ce comportement de votre coté ou qqc chez moi ne vas pas ?

Par avance merci
Membre enregistré
34 messages
Posté le 21 décembre 2025 - 18:47
Désolé l'image ne s'affichait pas correctement dans le message précédent :


Membre enregistré
34 messages
Posté le 24 décembre 2025 - 10:34
Bonjour,

La réponse à cette question se trouve ci-dessous pour ceux que ça intéresse, merci à Sébastien !

https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/278716-probleme-recuperation-attributnote-membre-classe-type-tableau/read.awp…