Ver Mensaje Individual
  #2  
Antiguo 13-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Inicio por comentar que me parece curioso que hayas puesto el tema en el foro de OOP, cuando no estas dando una solución orientada a objetos al asunto.

En objetos, podrías tener un tipo TEngranaje, que a su vez tuviera una colección (TCollection) de TDientes. ¿para eso son las colecciones no?

Sobre el tema que tratas, te aclaro que que dentro de un registro, se puede poner tanto un TStringList como un arreglo dinámico. En ambos casos, lo que realmente residirá en el registro es un puntero a la dirección de memoria donde estará realmente los datos (4 bytes), por lo que las reglas de los registros siguen siendo válidas. Te comento que esto mismo ocurre cuando incluis un string dentro del registro (a menos que sea un string del estilo pascal y no uno de los "nuevos" de delphi 3 o superior).

Entendiendo este punto, verás que si usas un TStringList (o cualquier campo de un registro que sea un objeto) cada vez que creas un nuevo registro, será tu responsabilidad manejar este puntero. Es decir, al crear el registro, podes hacer que apunte a nil, o crear una nueva instancia de la clase correspondiente y almacenarla allí.

Esto compila perfectamente en delphi 7:

Código Delphi [-]
type
  TRegistro = record
    nombre: string;
    arreglo : array of Integer;
    Lista: TStringList
  end;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita