Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2817 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [ Delphi ] TObjectList et initialisation memoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ Delphi ] TObjectList et initialisation memoire

n°504007
Ciler
Posté le 01-09-2003 à 12:11:08  profilanswer
 

:hello:  
 
Je suis a nouveau dans une impasse avec les TObjectList, la deuxieme.  
Bref, je me suis fait un beau petit objet que j'ai besoin de gerer avec une liste. Le TObjectList semble approprie pour ca, surtout si il own son contenu. Maintenant le probleme, pour ajouter un objet a la liste, par la fonction add, l'objet doit avoir ete cree precedement et donc :
 

Code :
  1. procedure UnObjet();
  2. var
  3.   MonObjet: TMonObjet;
  4.   MaListe:  TObjectList;
  5. begin
  6.   MonObjet := TMonObjet.create;
  7.   MaListe.Add(MonObjet);
  8. end;


 
Maintenant, si je veux ajouter un nombre inconnu d'objets, je peux faire ca :
 

Code :
  1. procedure PleinObjets(i: integer)
  2. var
  3.   MonObjet: TMonObjet;
  4.   MaListe:  TObjectList;
  5.   j: integer;
  6. begin
  7.   for j := 0 to i do
  8.   begin
  9.     MonObjet := TMonObjet.create;
  10.     MaListe.Add(MonObjet);
  11.   end;
  12. end;


 
Ou bien je vais me retrouver avec i fois le meme objet dans la liste ?


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
mood
Publicité
Posté le 01-09-2003 à 12:11:08  profilanswer
 

n°504079
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-09-2003 à 13:06:41  profilanswer
 

non, ça marche comme ça ;) À chaque fois ta variable MonObjet est modifiée donc tu ajoute quelque chose de différent à chaque fois


Message édité par antp le 01-09-2003 à 13:07:13

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°504085
Poipoi
Vive Grumly
Posté le 01-09-2003 à 13:11:36  profilanswer
 

Attention à ne pas perdre des objets en mémoire  ;)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°504086
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-09-2003 à 13:14:17  profilanswer
 

S'il fait un Add pour chaque Create il n'en perdra normalement pas


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°504098
Poipoi
Vive Grumly
Posté le 01-09-2003 à 13:27:09  profilanswer
 

oui
 
sauf si + tard il fait un truc du genre
 
MyObjectList.Items(i) := MyObjectSortitDeNulPart;
 
ds ce cas l'objet ki se trouvait à l'index i avant l'affectation est perdu ds la nature  :D


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°504123
Ciler
Posté le 01-09-2003 à 13:54:53  profilanswer
 

Poipoi a écrit :

oui
 
sauf si + tard il fait un truc du genre
 
MyObjectList.Items(i) := MyObjectSortitDeNulPart;
 
ds ce cas l'objet ki se trouvait à l'index i avant l'affectation est perdu ds la nature  :D  


 
Il est perdu ou ecrase ? Parce-que c'est pas exactement la meme chose  :o


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°504132
Poipoi
Vive Grumly
Posté le 01-09-2003 à 14:02:34  profilanswer
 

ciler a écrit :


 
Il est perdu ou ecrase ? Parce-que c'est pas exactement la meme chose  :o  


perdu perdu
 
pas déallouer ni rien, juste perdu
(tu perd la référence à l'objet)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°504177
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-09-2003 à 14:43:07  profilanswer
 

ciler a écrit :


 
Il est perdu ou ecrase ? Parce-que c'est pas exactement la meme chose  :o  


 
pointeur écrasé, objet perdu


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°504256
Ciler
Posté le 01-09-2003 à 15:43:01  profilanswer
 

A pis un autre truc aussi
 
Si j'ai MaListe qui devient une variable globale, et que je remplis pareil, le contenu de la liste souffre pas de la sortie de la procedure dans laquelle MonObjet est definis (et a l'issu de laquelle a priori il n'existe plus)


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°504264
Poipoi
Vive Grumly
Posté le 01-09-2003 à 15:50:40  profilanswer
 

ciler a écrit :

A pis un autre truc aussi
 
Si j'ai MaListe qui devient une variable globale, et que je remplis pareil, le contenu de la liste souffre pas de la sortie de la procedure dans laquelle MonObjet est definis (et a l'issu de laquelle a priori il n'existe plus)


non
ton objet sera tjs ds ta liste


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
mood
Publicité
Posté le 01-09-2003 à 15:50:40  profilanswer
 

n°504280
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-09-2003 à 15:59:57  profilanswer
 

en Delphi les objets sont des pointeurs même si on ne le voit pas trop en les manipulant, comme en JAVA quoi.


Message édité par antp le 01-09-2003 à 16:00:45

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°504296
Poipoi
Vive Grumly
Posté le 01-09-2003 à 16:14:02  profilanswer
 

antp a écrit :

en Delphi les objets sont des pointeurs même si on ne le voit pas trop en les manipulant, comme en JAVA quoi.


 :ouch:  :fou:  
 
Compare plus jamais Delphi au Java  :o


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°504515
Ciler
Posté le 01-09-2003 à 22:21:03  profilanswer
 

antp a écrit :

en Delphi les objets sont des pointeurs même si on ne le voit pas trop en les manipulant, comme en JAVA quoi.


 
Ca je sais, je m'inquietais plus d'un probleme de portee que de persistance. Surtout que la mon objet est une classe, alors il pointise plein tube  :D  
 
Comment je vais m'en sortir moi  [:ciler]


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°504665
Poipoi
Vive Grumly
Posté le 02-09-2003 à 08:50:02  profilanswer
 

En faisant bien attention et en étant rigoureux  :whistle:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°504932
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-09-2003 à 12:09:52  profilanswer
 

ciler a écrit :


 mon objet est une classe


 
:??: Tout objet est une instance de classe, non ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°505070
Poipoi
Vive Grumly
Posté le 02-09-2003 à 13:52:00  profilanswer
 

antp a écrit :


 
:??: Tout objet est une instance de classe, non ?


Beh il vaut mieux non ? :D


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°505092
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-09-2003 à 14:06:07  profilanswer
 

Ouais enfin en Delphi c'est vague
 
tu as trois types :
- record
- object
- class
 
le premier contient juste des attributs, et s'alloue soit en déclarant une variable soit en réservant une zone mémoire (GetMem) et en jouant avec un pointeur
 
le second c'est pareil, sauf qu'il peut avoir des méthodes, et je suis pas sûr qu'on puisse le déclarer comme une variable. Il se peut qu'on doive obligatoirement l'allouer via un GetMem.
 
le troisième a aussi attributs et méthodes, mais il descend toujours de TObject, et a donc les méthodes de TObject : Create, Free (Destroy), etc. , qui facilitent la création/destruction et pas mal d'autres choses.
 
Un objet est une instance d'une classe (en POO), mais en delphi "object" <> "class" :D


Message édité par antp le 02-09-2003 à 14:06:38

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°505103
Poipoi
Vive Grumly
Posté le 02-09-2003 à 14:11:18  profilanswer
 

Il me semble que Object est resté juste par soucis de compatibilité avec le Pascal


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°505108
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-09-2003 à 14:16:17  profilanswer
 

Oui mais bon il existe quand même :/


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°505115
Poipoi
Vive Grumly
Posté le 02-09-2003 à 14:19:13  profilanswer
 

antp a écrit :

Oui mais bon il existe quand même :/


Comme un tas de d'API obsolètes & co...


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°505128
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-09-2003 à 14:22:27  profilanswer
 

les fonctions obsolètes te mettent un warning :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°505138
Poipoi
Vive Grumly
Posté le 02-09-2003 à 14:26:47  profilanswer
 

Sur D7 s'il fallait s'oqp de tout les warnings  :o


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°505143
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-09-2003 à 14:29:34  profilanswer
 

:heink: suffit de désactiver les trois trucs de warnings pour .NET quand tu ouvres un vieux projet et t'as pas plus de warning qu'avec Delphi 6
 
Me dit pas que tu bosses avec des centaines de warning [:wam] (ça met un temps fou à compiler à cause de ça en plus)
 
Idéalement un soft doit compiler sans warning/hints, ou alors juste un ou deux dans quelques rares cas non résolvables. Évidemment il arrive que les compos utilisés laissent eux aussi des warnings/hints.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°505151
Poipoi
Vive Grumly
Posté le 02-09-2003 à 14:32:53  profilanswer
 

des hints C pas bon
des warnings... :whistle:
 
edit : pour répondre à ta question... ça dépend  :whistle:  
 [:neowen]


Message édité par Poipoi le 02-09-2003 à 14:35:53

---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°505156
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-09-2003 à 14:35:56  profilanswer
 

les warnings c'est plus grave que les hints
 
Pour Delphi 7, si tu fais pas du code portable vers .NET tu dois décocher les 3 derniers trucs dans Project -> Options -> Compiler Messages.
 
Et tu peux aussi virer le 3è et 5è si tu fais pas du code portable CLX.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°505162
Poipoi
Vive Grumly
Posté le 02-09-2003 à 14:38:00  profilanswer
 

antp a écrit :

les warnings c'est plus grave que les hints
 
Pour Delphi 7, si tu fais pas du code portable vers .NET tu dois décocher les 3 derniers trucs dans Project -> Options -> Compiler Messages.
 
Et tu peux aussi virer le 3è et 5è si tu fais pas du code portable CLX.


je C, mais des fois G la flemme  :ange:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°505170
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-09-2003 à 14:42:06  profilanswer
 

[:mlc] pour virer 3 options ?
 
comment tu sais bosser avec tant de warnings/hints ? on voit pas ceux qui sont importants :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°505175
Poipoi
Vive Grumly
Posté le 02-09-2003 à 14:44:54  profilanswer
 

G + trop le loisir de bosser sur de gros trucs en Delphi  :cry:  
Donc G pas tant de warning que ça


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°505185
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-09-2003 à 14:49:51  profilanswer
 

Ouais enfin dès que tu utilises des compos tiers (style JVCL) t'as vite des centaines de warnings si tu vires pas ces trois trucs :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°505196
Poipoi
Vive Grumly
Posté le 02-09-2003 à 14:54:20  profilanswer
 

antp a écrit :

Ouais enfin dès que tu utilises des compos tiers (style JVCL) t'as vite des centaines de warnings si tu vires pas ces trois trucs :o


t'as ke les warnings de la page en cours ou de celle ou ya une erreur quand tu executes(pas celle du code ki est pas ouvert) donc...


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°505249
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-09-2003 à 15:18:33  profilanswer
 

Ouais mais moi je fais de temps en temps des build all pour voir si dans mon programme y a pas des trucs qui ont souffert des certaines modifs, ou des warnings que j'ai loupé et qu'il ne me représente plus (vu que j'y ai plus touché).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°505255
Poipoi
Vive Grumly
Posté le 02-09-2003 à 15:21:28  profilanswer
 

antp a écrit :

Ouais mais moi je fais de temps en temps des build all pour voir si dans mon programme y a pas des trucs qui ont souffert des certaines modifs, ou des warnings que j'ai loupé et qu'il ne me représente plus (vu que j'y ai plus touché).


Moi aussi, mais pas toute les 5mn  :p


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°505266
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-09-2003 à 15:25:33  profilanswer
 

t'as fini de discuter pour rien :o
c'est pas pratique d'avoir des centaines de warning lors d'un build all, y a 3 cases à décocher pour pas les avoir, autant les décocher.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°505278
Poipoi
Vive Grumly
Posté le 02-09-2003 à 15:30:15  profilanswer
 

antp a écrit :

t'as fini de discuter pour rien :o


G ke ça à faire  :o
et à priori toi aussi  :D


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°505296
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-09-2003 à 15:36:40  profilanswer
 

:p
non faut que j'aille vérifier la pression des pneus de ma bagnole


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°505349
Ciler
Posté le 02-09-2003 à 16:40:58  profilanswer
 

Oh, un topic baston [:dawa]
 
oh, c'est le mien en plus  [:runner11]


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°505352
Poipoi
Vive Grumly
Posté le 02-09-2003 à 16:43:09  profilanswer
 

ciler a écrit :

Oh, un topic baston [:dawa]
 
oh, c'est le mien en plus  [:runner11]  


où t'as vu une baston ?


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [ Delphi ] TObjectList et initialisation memoire

 

Sujets relatifs
Delphi 7 et BD : pb d'accent ![Delphi] Graphe et interpolation de courbes...
Splashscreen sous delphi : comment l'animer ?API C de MySQL: fuite de mémoire
Ecriture zone mémoire dans un fichier donne n'importe quoi (resolu)[C] Initialisation un peu spéciale d'une chaine à la déclaration
Comment tuer un processus mis en mémoire avec fork() ??Class en delphi
[DELPHI] Problème pour une erreur que je n'arrive pas à résoudre[delphi] longueur du code ... comment vous faites?
Plus de sujets relatifs à : [ Delphi ] TObjectList et initialisation memoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR