Ver la Versión Completa : Array de OBJETOS en Delphi 7
animal
07-07-2005, 05:01:59
Hola!, tengo un problemilla con la creacion de una coleccion de objetos en forma de array.
Tengo la clase PEPE y quiero crear un array (o coleccion de objetos PEPE)
var
PEPITOS: array of PEPE
begin
// el tema es q no puedo hacer
SetLength(PEPITOS, 5); //por ejemplo
end;
Alguien me puede ayudar? o alguna otra forma para crear una coleccion de PEPEs ?
Saludos desde el mejor lugar del mundo!
Eduardo
Ohcan
07-07-2005, 08:57:52
¿No puedes?
¿Te da algún error?
Neftali [Germán.Estévez]
07-07-2005, 09:37:47
Bueno, no vas mal encaminado; Si lo haces utlizando un array como comentas, pues debes hacer el SetLenght y luego crear cada objeto utilizando el Create de la clase PEPE; El SetLenght sólo te crea los punteros, pero no crea los objetos.
Otra opción que yo utilizo a menudo es utilizar un StringList; Siempre y cuando puedas identificar a cada PEPE de forma única, con un entero o String, no es una mala solución; Cada elemento del StringList posee un puntero para "enganchar" un PEPE (propiedad Object), y además tienes métodos de ordenación y búsqueda más eficientes que los del array (secuenciales).
No puedes usar un TobjectList, te sería muchisimo más facil.
Uso de TobjectList (http://www.clubdelphi.com/foros/showthread.php?t=18114&highlight=tobjectlist)
(si buscas en el foro por TobjectList encontrarás muchos hilos)
Incluso podrías hacer tu propia lista:
TpepeList = Class(TobjectList)
en 3 minutos debería estar preparada para añadir, objetos Pepe como se hace en un Treeview con sus nodos, el código queda mucho más limpio:
var p,jose:Tpepe;
Lista:TpepeList;
begin
Lista := TpepeList.Create(true);
pepe := Tpepe.Create;
pepe.loquesea := ' lo que sea, of course';
Lista.Add(pepe);
jose := Lista.items[0];
ShowMessage(jose.loquesea);
end;
Limpio me refiero a que no tienes que usar el casteo Tpepe(lista.items[0]) cada vez que accedes a un elemento de la lista.
Un saludo
roman
07-07-2005, 18:10:49
Corrección de estilo
¿No puedes usar un TobjectList?, te sería muchisimo más facil.
De la otra manera parece que le prohibes usar un TObjectList
:D
// Saludos
Perdon, se me olvido los signos de interrogación. De verdad que las 2 primeras frases no hay quien las entienda :D.
O sea roman, ya no solo nos guias en programación, sino que tambien cuidas nuestro estilo. Aprovecho para hacerte una pregunta de "estilo" :D , ¿qué tal le van unos calcetines blancos con bermudas y chanclas de verano? :D
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.