OVH Cloud OVH Cloud

[WinDev 10] Construire dynamiquement un nom d'objet

11 réponses
Avatar
Jean-Luc Baptiste
Bonjour,

Je souhaite créer des noms objets dynamiquement, j'ai essayé les
indirections mais sans succés. Hors, il y a quelques temps j'y étais
arrivé (alzheimer surement ;-))

Si quelqu'un a la solution...

Exemple

i est un entier

pour i=1 à 10
Nomobjet+i est un objet maclasse
fin pour

1 réponse

1 2
Avatar
Pascal ROY
Jean-Baptiste, je n'arrive pas à t'envoyer en privé
les classes en question !

J'ai un mail de retour me disant ceci

******************
----- The following addresses had permanent fatal errors -----

(reason: 550 user unknown)
******************

Donc, si tu pouvais me dire comment te faire parvenir la classe en privé...

Pascal



Jean-Luc Baptiste a écrit :
Pascal ROY a écrit :

Bonjour,

Perso, je déclarerais un tableau dynamique global à l'appli.

gMesObjets est un tableau dynamique = Null
gnNbObjets est un entier = 0 //Ca sert a connaitre le nombre d'objets


Ensuite
Si tu connais le nb de compte tu peux directement allouer le bon nombre
Ex : gMesObjets = Allouer tableau de kNbCompte ObjetCompte


tantque gNbObjets < kNbCompte
Si t'as choisi la 1ere Solution tu ecrit directement
gnNbObjets ++
gMesObjets[ gnNbObjets] = Allouer un est un ObjetCompte( )
Sinon
gnNbObjets ++
Si gnNbObjets = 1 alors
gMesObjets = Allouer un Tableau de 1 ObjetCompte
Sinon
Dimension( gMesObjets, gnNbObjets)
Fin
gMesObjets[ gnNbObjets] = allouer un ObjetCompte( )
Fin
fin tq

Dans ce cas, il faut faire, en fin de projet

Si gMesObjets <> NULL alors
pour i = 1 à gnNbObjets
liberer( gMesObjets[ i])
fin
Liberer( gMesObjets)
fin

Voila !

Personnellement, comme je suis un peu fainéant, je me
suis créé une classe "Collection" qui contient un tableau
d'objets d'un type CollectionItem.

Je dérive mes objets à mettre en liste d'une classe virtuelle
CollectionItem, et hop ! En route vers la gloire :-)

Pascal



C'est sympa comme solution ! Je teste au plus tot.

Peux-tu m'en dire plus au sujet de ta classe collection ? Les méthodes
majeures ?

Merci


1 2