2010-07-07 14 views
12

Estoy usando Delphi 1 de 16 bits para aprender Pascal (no se ría, funciona bien, además de que no puedo permitirme una versión más reciente). Estoy usando un TList para contener referencias de objetos para una libreta de direcciones simple. Cada objeto se añade a la TList así:¿Debo liberar estos objetos?

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

¿Es necesario liberar el TAddrBookData objetos a mí mismo? ¿O se liberan cuando se ejecuta TList.Free?

+0

¡Bienvenido a StackOverflow, Frank_M! Buena pregunta. No me reiré, pero te advertiré. Windows de 64 bits se está volviendo más popular cada día, y las aplicaciones de 16 bits no se ejecutarán en él. Si no puede pagar una versión moderna, vea si al menos no puede encontrar una copia usada de Delphi 7 flotando por ahí. Tiene un montón de mejoras sobre Delphi 1. –

+0

Delphi 1 no es un buen punto de partida para aprender OOP. Está bien si quieres aprender lo básico, pero está muy desactualizado en términos de tecnologías modernas. si quiere aprender tecnologías OOP y programación modernas, recomiendo C#, hay IDE gratis para ello: http://www.microsoft.com/express/Downloads/#2010-Visual-CS. C# fue diseñado por un arquitecto ex delphi, por lo que tomó todo lo mejor de él. – Andrey

+9

si decide aprender Delphi, es posible que desee buscar Delphi 7 Personal, que se eliminó de los sitios web de Borland/CodeGear/Embarcadero, pero todavía está disponible en algunos servidores de réplica. Creo que es legal usar esto como lo fue una vez publicado como freeware. – migajek

Respuesta

12

Debe liberarlos usted mismo. Las versiones posteriores vienen con TObjectList, que es como un TList, excepto que solo aceptará objetos y tiene la opción de apropiarse de ellos automáticamente cuando se libera la lista. Pero no creo que TObjectList existiera en Delphi 1, así que tendrás que encargarlo manualmente.

+0

Tiene razón, 'TObjectList' no existía en Delphi 1. – Nat

+4

... que es una fantástica oportunidad * de aprendizaje ... tomando un TList y luego diseñando una extensión (clase derivada) para proporcionar un TObject type-safe contenedor con semántica de propiedad de contenido. Aprenderá mucho más * desarrollando * una clase así, de lo que simplemente utilizará una que ya se haya proporcionado. – Deltics

8

Necesitará liberar (o FreeAndNil) también.

Si quieres aprender Object Pascal (Delphi) con un IDE más nuevo (y gratuito) prueba Lazarus ya que el Turbo Delphi 2006 gratuito ha sido descontinuado (qué mala jugada).

+5

movimiento muy, muy malo, de hecho :( – migajek

+0

'FreeAndNil()' no existía en Delphi 1 (lo sé, Todavía tengo que usarlo para mantener el código de 16 bits). Pero puede escribir el suyo. – Nat

+0

No es demasiado difícil de implementar, de hecho :) Delphi 1 parece tan lejano ... Tengo una caja sellada de Delphi 1 en casa que mantener como coleccionista jejeje. – AlexV

Cuestiones relacionadas