PDA

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).

Lepe
07-07-2005, 16:00:43
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

Lepe
08-07-2005, 11:33:21
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