Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-11-2005
metalfox6383 metalfox6383 is offline
Miembro
 
Registrado: jul 2005
Posts: 97
Poder: 19
metalfox6383 Va por buen camino
Question Matriz de objetos en Delphi

Hola:

Recuendo que en Visual Basic se podía crear una matriz de objetos con tan solo agregar el número de índice en la propiedad "Index". Pero eso no se puede directamente en Delphi, ¿cómo puedo hacer algo parecido en Delphi?

Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 16-11-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No estoy seguro,... ¿te refieres a algo así?

Código Delphi [-]
 type
   TUnObjeto = class(TObject)
   private
     FUnaVariable: integer;
   public
     property UnaPropiedad: integer read FUnaVariable write FUnaVariable;
   end;
 
 var
   UnosObjetos: array[0..3] of TUnObjeto; // Array estático
   OtrosObjetos: array of TUnObjeto; // Array dinámico
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 16-11-2005
metalfox6383 metalfox6383 is offline
Miembro
 
Registrado: jul 2005
Posts: 97
Poder: 19
metalfox6383 Va por buen camino
Chévere! Gracias. No pensé que sería así de sencillo.
Responder Con Cita
  #4  
Antiguo 16-11-2005
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Tambien puedes usar la clase TObjectList
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #5  
Antiguo 16-11-2005
metalfox6383 metalfox6383 is offline
Miembro
 
Registrado: jul 2005
Posts: 97
Poder: 19
metalfox6383 Va por buen camino
Interesante el objeto TObjectList, estuve leyendo pero no encuentro un ejemplo directo que me senseñe a usarlo. Puedes darme un ejemplo. Ya intenté creando una matriz de objetos con la sentencia "array", pero no me lo permite. Por favor, necesito ayuda. Gracias.
Responder Con Cita
  #6  
Antiguo 16-11-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por metalfox6383
pero no me lo permite
¿Y por qué no te lo permite? ¿Cómo lo haces?

// Saludos
Responder Con Cita
  #7  
Antiguo 16-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Tip del dia: Busca por "TobjectList" en el foro, se ha hablado muy extensamente de él.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 17-11-2005
metalfox6383 metalfox6383 is offline
Miembro
 
Registrado: jul 2005
Posts: 97
Poder: 19
metalfox6383 Va por buen camino
Ah, ya. Buscaré entonces.

Bueno, respondiendo a la pregunta anterior, cuando yo quería crear una matriz de objetos escribía la siguiente sentencia, debajo de "var"...:

var
matriz: array[0..5] of TLabel;

Por ejemplo, escribía esa sentencia, pero ocurre un error cuando compilo mi programa, sin embargo, cuando elimino la sentencia, el error ya no aparece y el programa corre normal. Por eso digo que no me permite crear la matriz de objetos. ¿Alguna solución? ¿Tengo que utilizar alguna unidad?
Responder Con Cita
  #9  
Antiguo 17-11-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por metalfox6383
Por ejemplo, escribía esa sentencia, pero ocurre un error cuando compilo mi programa...
Hola. Comprenderás que sin saber cual es el error que ocurre, resulta mucho mas dificil ayudarte.

Te invito a leer el hilo de la calidad de las preguntas

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
  #10  
Antiguo 21-11-2005
metalfox6383 metalfox6383 is offline
Miembro
 
Registrado: jul 2005
Posts: 97
Poder: 19
metalfox6383 Va por buen camino
¿Podrían darme el código de algún programa (pequeño y de muestra) donde se cree una matriz de objetos, pero que haya sido probrado? De forma que la copio y reviso si existe algún error.
Responder Con Cita
  #11  
Antiguo 22-11-2005
MAngelito MAngelito is offline
Registrado
 
Registrado: nov 2005
Posts: 9
Poder: 0
MAngelito Va por buen camino
Smile Puedes colocar primero un label en el form

A veces delphi no reconoce un rreglo de controles si inicialmente no existe el objeto, entonces puedes colocar un label o cualquier objeto que quieras utilizar, lo colocas en modo diseño y compilas, una vez que ha reconocido al objeto, lo puedes eliminar del formulario y seguir usando tu arreglo de controles. Incluso puedes redimensionar el arreglo:
Código Delphi [-]
 
var
miArray:array of TLabel;
i:integer;
begin
i:=0;
setLength(miArray,variableValorEntero);
for i=0 to 20 do
begin
  myarray[i]:=TLabel.Create(self);
  myarray[i].Left:=20;
  myarray[i].Top:=i*18;
  myarray[i].Caption:='Contenido';
  myarray[i].Parent:=QRBand2;  //donde lo colocaré, en este caso en una
                                           //banda de qreport (opcional) 
end
end;
espero te sirva

Última edición por jachguate fecha: 22-11-2005 a las 21:22:48. Razón: Añadir etiqueta [delphi]
Responder Con Cita
  #12  
Antiguo 22-11-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por MAngelito
A veces delphi no reconoce un rreglo de controles si inicialmente no existe el objeto
Con esto supongo que te referís a que ocurre un error al intentar compilar, porque la unidad que contiene la clase no está declarada en la clausula Uses. No hace falta añadir ni borrar nada al formulario, simplemente añadir la unidad (por ejemplo Controls) a dicha clausula.

Hasta luego.



pd. he editado tu mensaje para añadir la etiqueta delphi, que formatea el código. Te recomiendo su uso (para aprender como se usa, edita el mensaje anterior).

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
  #13  
Antiguo 22-11-2005
MAngelito MAngelito is offline
Registrado
 
Registrado: nov 2005
Posts: 9
Poder: 0
MAngelito Va por buen camino
Ok jachguate

Tienes razón el error se debe a la falta de declaración en las librerías, solo que si se coloca en el formulario, se declara automaticamente, bueno esa era mi idea, aunque no la explique correctamente, tendré mas cuidado y comenzaré a usar etiquetas.

Gracias
Responder Con Cita
  #14  
Antiguo 22-12-2005
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Poder: 21
nuk3zito Va por buen camino
En lo personal, prefiero usar el TStringList, es como el TObjectList pero en mi caso siempre procuro alamcenar ID's de mis objetos para una lectura rápida.
Chécalo, el TObjectList o el TStringList según el uso que les des son objetos muy útiles.
En la ayuda de Delphi viene un buen para el TStringList.
__________________
Tiempo y ocasión acontecen a todos!
Responder Con Cita
  #15  
Antiguo 30-12-2005
metalfox6383 metalfox6383 is offline
Miembro
 
Registrado: jul 2005
Posts: 97
Poder: 19
metalfox6383 Va por buen camino
Gracias por toda la ayuda. No había leído los últimos comentarios, y recién lo acabo de hacer. Voy a volver a intentar crear una matriz de objetos y averiguar acerca del TObjectList. GRACIAS!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:26:45.


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
Copyright 1996-2007 Club Delphi