Propriétés d"une classe

sousou

XLDnaute Barbatruc
Bonjour à tous.
Pensez-vous qu'il soit possible de lister (dans une boucle par itération), les propriétés d'une class?
En fait je shouaite faire une procédure qui va remplir les propiétés d'un objet d'une class, et je ne connais pas le nombre de propiétés.

pour faire plus simple il me faudrait quelque chose comme cela:
for each p in maclass.properties
p=une valeur
next

Merci
 

Dranreb

XLDnaute Barbatruc
Non, ce ne sont pas des mots clés du langage, seulement des noms usuels pour les méthodes les plus archi classiques.
Je n'ai pas d'idée de code plus simple, parce qu'il faudrait quelque chose qui pousse un module de classe à exécuter une méthode de celui qui le gère et je ne vois guère qu'un évènement de contrôle pour cela. Tout ce que je peux faire c'est isoler les instructions impliquées dans ce mécanisme :
ControlsAssociés :
VB:
Public Sub Add(ByVal Ctl As MSForms.Control, Optional ByVal Colonne As Variant = -1, _
   Optional ByVal Format As String = "", Optional ByVal Mode)
…
   TCAssos(I).Init Me, Ctl, I, Colonne, Format, Mode
   End Sub
——————————————————————————————————
   Public Sub CAsso_Change(ByVal CAM As CAsso)
   If NePasExécuterChange Then Exit Sub
   RaiseEvent Change(CAM)
' Si l'UserForm utilise un ComboBoxLiées nommé CLs, Conseil: CLs.UnContrôleAChangé (Pour détection CLs.ChangéÀLEchap)
   End Sub
CAssoTBx :
Code:
Private Parent As ControlsAssociés, WithEvents TBx As MSForms.TextBox, Index As Long, Colonne As Long, Format As String, UsMode
Private Sub CAsso_Init(ByVal Lui As ControlsAssociés, ByVal Ctl As MSForms.IControl, ByVal Idx As Long, _
   ByVal Col As Long, ByVal Fmt As String, ByVal Mode As Variant)
   Set Parent = Lui: Set TBx = Ctl: Colonne = Col: Format = Fmt: UsMode = Mode
   End Sub
——————————————————————————————————— 
Private Sub TBx_Change()
   Parent.CAsso_Change Me
   End Sub
Remarque: c'est le seul cas où je me permets un '_' dans un nom de méthode (CAsso_Change) alors que ce n'est pas une procédure évènement, mais quelque chose d'analogue.
 
Dernière édition:

laurent950

XLDnaute Accro
Je viens de vous lire Dranred, Franchement je vous remercie pour cette réactivité et cette aide que vous m'apporter. J'ai une idée pour justement :
je vais créer un fichier Franchement ça va être très simple. l'idée et la suivante.
Créer un module standard et deux classe.
depuis le module standard, je vais envoyer un tableau depuis le module standard vers la classe A (dans cette classe A je vais créer un [ Let et Get ] qui vont servir a envoyer le tableau du Module standard vers le module de classe A. Bien sûr je vais travailler avec le Tableau qui lui sera en copie (Dans le module de classe A) grace a l'action du Let ou j'aurais stocké la copie dans la variable privée de la classe A.

Imaginons maintenant toujours depuis le module standard, une action sur la variable tableau qui se trouve dans le module A
donc je crée la procédure dans le module A qui va crée une action.
je fais une boucle sur le tableau (qui se trouve en variable privé du module A)
ma demande de copier, tous les valeurs de la colonne 1 dans la colonne 2 (C'est stupide mais pour comprendre)

donc j'ai bien ma variable tableau (stocké dans le module A) Modifié à présent.

Bon maintenant je veux faire un tris sur toutes les valeur de la colonne 10 (Il se trouve que c'est des nombres) et bien sur les trié par Ordre croissant

Là l'exemple deviens intéressant ( car il se trouve que j'ai bien une procédure de trie quicksort qui fait cette action) mais elle se trouve dans le module de classe B

Alors si je peux appeler cette procédure depuis ma classe A (Je vais pouvoir faire le tris de mon tableaux stocké dans ma variable privé de mon module A)

Imaginons que cela est réalisé

avec le get (je renvois mon tableau dans mon module de classe standard) et j'ai mes nouvelles donnée qui sont substitué par l'ancien tableau

C'est ce genre d'idée que j'ai et que je souhaite comprendre, du moins le mécanisme .

Je vais prendre le temps de faire une structure, que pensez-vous de mon idée ?

C'est juste un exemple sans importance c'est pour comprendre le sens de se que je veux réalisé

encore Merci Dranred
 

Dranreb

XLDnaute Barbatruc
J'attends de voir.
Je tique un peu sur l'histoire d'une procédure de tri qui est dans un autre module de classe, mais bon…
J'ai un module de classe qui a pour thème un tableau de long: ListeAléat. Il permet de gérer une série de numéros en ordre aléatoire, avec des méthode pour en supprimer un qui vient d'être tiré, l'y remettre s'il ne convient pas etc., pour des application d'appariement de joueurs dans différentes disciplines.
Personnellement je me mets à songer à un module de classe pour y isoler des éléments et traitements quand ils commencent à m'apparaitre trop compliqué à gérer dans la procédure applicative. Je me demande aussi ce que j'aimerais pouvoir écrire dans mon application pour qu'un objet se débrouille à me le faire pour que je n'ai plus à m'en occuper dans celle ci. Je ne pars pas de l'idée d'écrire un module de classe sans parfaitement savoir ce qu'il va simplifier dans une application. Je peux me tromper mais j'ai vaguement l'impression que vous prenez peut être le problème à l'envers. Un module de classe ne va pas apporter spontannément une solution miracle simplement parce que c'est un module de classe (sauf peut être pour les petites bricoles permettant de gérer des CommandButton ou TextBox à la pelle), il va apporter une solution adaptée à un problème d'abord pensé coté application.
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
327
Réponses
2
Affichages
554

Statistiques des forums

Discussions
312 329
Messages
2 087 324
Membres
103 516
dernier inscrit
René Rivoli Monin