Tcollection et TcollectionItem ou Gestion des objetc imbriques

protheus2003 Messages postés 13 Date d'inscription jeudi 13 octobre 2011 Statut Membre Dernière intervention 9 mars 2012 - 11 févr. 2006 à 11:35
protheus2003 Messages postés 13 Date d'inscription jeudi 13 octobre 2011 Statut Membre Dernière intervention 9 mars 2012 - 16 févr. 2006 à 09:04
bonjour, Mon probleme :


je dois realiser un objet de type


Pays 1


Nom pays


Departement 1


Nom depart


Ville 1


Ville 2


Nom ville


Personne 1


Nom Personne


....


Departement 2


Pays 2





j'arrive a realiser le premier niveau : Pays qui possede des


departement


mais je n'arrive pas a implementer le faites que depart possede une ou


plusieurs villes





quelqu'un aurait une idée ou un morceau de code qui pourrait me servir


? merci

Language utilisé Delphi 7
Tcomponent, Tcollection, TcollectionItem 1er niveau

5 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
14 févr. 2006 à 07:49
alors deja, il faudrat plusieurs objets :

TPersonne : nom, prenom
TVille : nom_ville, collection TPersonne
TDepartement : nom_departement, collection TVille
TPays : nom_pays, collection TDepartements

Type
TPersonneItem = class(TCollectionItem)
private
FNom : string;

public
property Nom : string read FNom write Fnom;

end;

TPersonnes = class(TCollection)
private
function GetItem(index : integer) : TPersonneItem;

procedure SetItem(index : integer; value : TPersonneItem);
public

Property Items[index : integer] : TPersonneItem read GetItem write SetItem; default;

end;

TVilleItem = class(TCollectionItem)
private
FNom : string;

FPersonnes : TPersonnes;
procedure SetPersonnes(value : TPersonnes);

public
property Nom : string read FNom write Fnom;

Property Personnes : TPersonnes read FPersonnes write SetPersonnes;

end;

TVilles = class(TCollection)
private
function GetItem(index : integer) : TVilleItem;

procedure SetItem(index : integer; value : TVilleItem);

public


Property Items[index : integer] : TVilleItem read GetItem write SetItem; default;

end;

TDepartementItem = class(TCollectionItem)
private
FNom : string;

FVilles : TVilles;

procedure SetVilles(value : TVilles);
public

property Nom : string read FNom write Fnom;

Property Villes : TVilles read FVilles write SetVilles;

end;

TDepartement = class(TCollection)
private
function GetItem(index : integer) : TDepartementItem;

procedure SetItem(index : integer; value : TDepartementItem);

public


Property Items[index : integer] : TDepartementItem read GetItem write SetItem; default;

end;

TPaysItem = class(TCollectionItem)
private
FNom : string;

FDepartements : TDepartements;

procedure SetDepartements(value : TDepartements);

public

property Nom : string read FNom write Fnom;

Property Departements : TDepartements read FDepartements write SetDepartements;

end;

TPays = class(TCollection)
private
function GetItem(index : integer) : TPaysItem;

procedure SetItem(index : integer; value : TPaysItem);

public


Property Items[index : integer] : TPaysItem read GetItem write SetItem; default;

end;

TWorld = class(TComponent)
private
FPays : TPays;
procedure SetPays(value : TPays);

public
Property Pays : TPays read FPays write SetPays;
end;

voila je te laisse chercher le reste ... je pense que tu as deja une bonne base la ... par contre j'ai fait de memo donc ... y'aurat surrement du debugage a faire.

<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
14 févr. 2006 à 07:50
ah je precise un truc, TWorld est le composant final qui vas contenir tout les pays ect...

<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
0
protheus2003 Messages postés 13 Date d'inscription jeudi 13 octobre 2011 Statut Membre Dernière intervention 9 mars 2012
14 févr. 2006 à 12:48
bonjour et Merci beaucoup de ce coup de main, je vais essayer le code, il s'apparente a mes essais mais je ne pouvait pas acceder au second niveau d'items, erreur d'application 0000, donc tiem collection non initialise.

J'aime ta citation elle récelle beaucoup de vérité
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
16 févr. 2006 à 04:43
en fait dans l'exemple de code que je te donne et ou il manque enormement de chose (je ne l'ai montrer que pour montrer la hierarchie a faire) tu devras avoir des procedure Add, Delete, Clear, LoadFromFile et SaveToFile pour que tout sois parfait.

ensuite l'utilisation se feras un peu comme cela :

TWorld.Pays.Add
TWorld.Pays.Items[x].Departements.Add
TWorld.Pays.Items[x].Departements.Items[x].Villes.Add
TWorld.Pays.Items[x].Departements.Items[x].Villes.Items[x].Personnes.Add

ect...

<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
protheus2003 Messages postés 13 Date d'inscription jeudi 13 octobre 2011 Statut Membre Dernière intervention 9 mars 2012
16 févr. 2006 à 09:04
Salut, je n'ai pas encore pu essayer ton code, car je suis en conge pour la semaine mais je ne manquerai pas de venir te raconter si j'ai reussi a le mettre en oeuvre.
0
Rejoignez-nous