Problème de collection - Delphi/Pascal - Programmation
Marsh Posté le 08-06-2004 à 10:01:59
ton modèle UML semble tout à fait correcte
le problème se situe dans la prog
1 : quel version de delphi ?
2 : quel tobjectlist utilises-tu?
Marsh Posté le 08-06-2004 à 10:08:35
3 : si tu as les tstringlist, je te conseil de les utiliser, c'est facile, sinon, alloue carrément des tableaux dynamiques toi-même
4 : en toute logique : tu dois libérer le pointeur dans le tableau avant de libérer l'objet (or si tu as encore l'ancien nombre count et que tu n'arrives pas à atteindre ton objet, c'est plutôt que tu as déjà libéré ton objet)
5 : quand tu décides de libérer un objet, tu dois rajouter du code dans les événements ondestroy pour que la libération se fasse correctement, et ainsi tu pourras correctement remettre à jour tes listes d'objets
6 : dans les listes d'objets, tu n'es pas obligé de pointer directement vers l'objet, mais tu peux mettre un index à tes objets et ainsi tu pointes vers l'index de l'objet (c'est facile à mettre en place et souvent utilisé par les programmeurs, comme ça tu n'as plus jamais le problème "opération de pointeur incorrecte", mais ça fait un peu moins académique)
Marsh Posté le 04-06-2004 à 19:54:18
Bonjour,
Je travaille toujours sur une application objet.
J'ai trois classe TEditeur, une classe Tlivre et une classe Tauteur
- Dans ma classe Tediteur, j'ai une collection de Tlivre (Leslivres)
- Dans ma classe Tlivre, j'ai un pointeur vers Tediteur (Unlivre)
- Dans ma classe Tlivre, j'ai aussi une collection de Tauteurs (Lesauteurs)
- Dans ma classe TAuteur, j'ai une collection de livre (Lesecritures)
J'utilise des TOBJECTLIST pour mes collections
Ce qui donne en uml :
Editeur 1 1..* Livre 1..* 1..* Auteur
- Un editeur possède un ou plusieurs livres
- Un livre possède un seul éditeur
- Un livre possède un ou plusieurs auteurs
- Un auteur possède un ou plusieurs livres
Je souhaiterai supprimer un livre.
* Je dois donc avant de supprimer mon objet livre, pour chaque auteur supprimer de la collection Lesécritures ce livre.
* Puis je dois ensuite supprimer ce livre de la collection Leslivres de l'auteur du livre.
* Enfin, je dois détruire mon objet livre...
Mon probleme est que lorsque je supprime le livre de ma collection lesécritures, le livre se supprime de toutes mes autres collections mais il se supprime pas correctement car lorsque je regarde par exemple le nombre d'élément de ma collection Leslivres de la classe EDITEUR, il indique toujours le même nombre d'élémént avant et apres la suppression...
Comment faire pour supprimer l'objet Livre de toutes mes collections?
Si j'essaye de supprimer l'objet livre de l'éditeur, j'ai ce message d'erreur : opération de pointeur incorrecte
Merci d'avance pour votre aide.