2010-07-07 4 views
12

J'utilise Delphi 1 16-bit pour apprendre Pascal (ne rigole pas, ça marche bien, en plus je ne peux pas me permettre une version plus récente). J'utilise un TList pour contenir des références d'objet pour un simple carnet d'adresses. Chaque objet est ajouté à la TList comme ceci:Ai-je besoin de libérer ces objets?

DataList.Add(TAddrBookData.Create('Bob', '1 Mill St')); 

Ai-je besoin de libérer les objets TAddrBookData moi-même? Ou sont-ils libérés lorsque TList.Free est exécuté?

+0

Bienvenue sur StackOverflow, Frank_M! Bonne question. Je ne ris pas, mais je vous préviens. Windows 64 bits est de plus en plus populaire chaque jour et les applications 16 bits ne fonctionnent pas dessus. Si vous ne pouvez pas vous permettre une version moderne, voyez si vous ne pouvez pas au moins trouver une copie utilisée de Delphi 7 flottant quelque part. Il a beaucoup d'améliorations sur Delphi 1. –

+0

Delphi 1 n'est pas un bon point de départ pour apprendre la POO. C'est bien si vous voulez apprendre les bases, mais c'est vraiment dépassé en termes de technologies modernes. Si vous voulez apprendre les technologies OOP et de programmation modernes, je recommande C#, il y a un IDE gratuit pour cela: http://www.microsoft.com/express/Downloads/#2010-Visual-CS. C# a été conçu par l'architecte d'ex delphi, ainsi il a pris tout le meilleur de lui. – Andrey

+9

Si vous décidez cependant d'apprendre Delphi, vous pouvez rechercher Delphi 7 Personal qui a été supprimé des sites Web Borland/CodeGear/Embarcadero, mais qui est toujours disponible sur certains hébergeurs miroir. Je crois qu'il est légal de l'utiliser car il a déjà été publié en tant que freeware. – migajek

Répondre

12

Vous devez les libérer vous-même. Les versions ultérieures sont accompagnées d'une TObjectList, qui ressemble à une TList, sauf qu'elle n'accepte que les objets et qu'elle a la possibilité de prendre possession de la propriété et de la libérer automatiquement lorsque la liste est libérée. Mais je ne crois pas que TObjectList existait dans Delphi 1, donc vous devrez en prendre soin manuellement.

+0

Vous avez raison, 'TObjectList' n'existait pas dans Delphi 1. – Nat

+4

... ce qui est une opportunité * d'apprentissage * fantastique ... prendre un TList puis concevoir une extension (classe dérivée) pour fournir un type TObject sûr conteneur avec sémantique de propriété de contenu. Vous apprendrez beaucoup plus en développant une telle classe que vous en utiliserez simplement une déjà fournie. – Deltics

8

Vous devrez également les libérer (ou FreeAndNil). Si vous voulez apprendre le Pascal Objet (Delphi) avec un IDE plus récent (et gratuit), essayez le Lazarus car le Turbo Delphi 2006 gratuit a été abandonné (quel mauvais choix).

+5

très, très mauvais coup, en effet :( – migajek

+0

'FreeAndNil()' n'existait pas dans Delphi 1 (je sais, Je dois encore l'utiliser pour maintenir le code 16 bits.) Mais vous pouvez écrire le vôtre – Nat

+0

Pas trop difficile à implémenter en effet :) Delphi 1 semble si lointain ... J'ai une boite scellée de Delphi 1 chez moi que je garder comme collecteur hehehe. – AlexV

Questions connexes