PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → POO : Collection
POO : Collection
Débuté par xavier.roque, 14 déc. 2004 18:00 - 1 réponse
Posté le 14 décembre 2004 - 18:00
Salut à tous!

J'ai un petit probleme qui commence à m'ennerver sérieusement!!!!
Je vais essayer d'etre clair

J'ai 3 classes Bien, Lot, Proprietaire ....

Bien contient une collection de Lot (Tableau dynamique)

Lot contient un cProprietaire

Voici le code des classes

Classe Bien
Bien est une classe
PUBLIC
Nom est un chaîne = ""
Les_Lots est un tableau dynamique
NbLots est un entier
FIN

PROCEDURE Constructeur( )
:Les_Lots=allouer un tableau de 1 Lot

PROCEDURE AjouterLot(UnLot)
Dimension(:Les_Lots,:NbLots+1)
:Les_Lots[:NbLots+1]=UnLot
:NbLots++

Classe Lot
Lot est une classe
PUBLIC
NumLot est un chaîne = ""
Le_Proprietaire est un objet Proprietaire
FIN

PROCEDURE Constructeur( )

Classe Proprietaire
Proprietaire est une classe
PUBLIC
Nom est un chaîne = ""
FIN

PROCEDURE Constructeur( )

Jusqu'ici c'est pas trop compliqué mais c'est à l'utilisation que ca se corse!!!!

Voici un bout de code qui met en evidence mon problème ...
i est un entier
oLot est un Lot
oProprietaire est un Proprietaire

oBien:Nom="Nom du bien"

POUR i=1 A 3
oLot:NumLot="Lot : "+NumériqueVersChaine(i)
oLot:Le_Proprietaire:Nom="Nom proprio "+NumériqueVersChaine(i)
oBien:AjouterLot(oLot)
Info(oBien:Nom,oBien:Les_Lots[i]:NumLot,oBien:Les_Lots[i]:Le_Proprietaire:Nom)
FIN

POUR i=1 A 3
Info(oBien:Nom,oBien:Les_Lots[i]:NumLot,oBien:Les_Lots[i]:Le_Proprietaire:Nom)
FIN

et voici dans l'ordre les boites infos obtenues ...

Boite 1
Nom du bien
Lot : 1
NomProprio 1


Boite 2
Nom du bien
Lot : 2
NomProprio 2

Boite 3
Nom du bien
Lot : 3
NomProprio 3

Boite 4
Nom du bien
Lot : 1
NomProprio 3

Boite 5
Nom du bien
Lot : 2
NomProprio 3

Boite 6
Nom du bien
Lot : 3
NomProprio 3

Etonnant! Non?

En fait j'ai essayé plein de truc et c'est toujours pareil je n'arrive pas a recuperer (ou a stocker) correctement les infos de 3eme niveau dans une classe.

Si quelqu'un pouvait m'aider, je dormirais certinement bien mieux!!

Merci
Posté le 14 décembre 2004 - 18:39
Salut

Pour moi, le problème vient de la déclararation

oLot est un Lot

Tu as un seul objet lot, forcément tu ne peut stocker qu'une valeur. Utilise un objet dynamique et alloue un nouvel objet à chaque tour de boucle.

Ciao
http://wdgotcha.atspace.com