Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Array de OBJETOS en Delphi 7 (https://www.clubdelphi.com/foros/showthread.php?t=23123)

animal 07-07-2005 05:01:59

Array de OBJETOS en Delphi 7
 
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
(si buscas en el foro por TobjectList encontrarás muchos hilos)

Incluso podrías hacer tu propia lista:
Código Delphi [-]
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:
Código Delphi [-]
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

Cita:

Empezado por lepe
¿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


La franja horaria es GMT +2. Ahora son las 19:25:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi