Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-05-2010
Avatar de flystar
flystar flystar is offline
Miembro
 
Registrado: jul 2006
Posts: 184
Poder: 18
flystar Va por buen camino
Como se asignan valores directamente a un array dinamico?

Hermanos:

¿Cómo se asignan valores directamente a un array dinamico?

por ejemplo

var
AD:array of Tbutton;
begin

AD:=[boton1,boton2,boton3]

Claro que esto no funciona...pero bueno es la idea para no tener que estar haciendo AD[0]:=boton1, AD[1]:=boton2, etc.

La curioso esta que si yo tengo una funcion donde paso parametros de esa manera para que se reciban en un array dinamico, asi si funciona...lo curioso es que si lo asigno asi directo...no jala.

Alguna orientacion?

Gracias.
__________________

"Los unicos que no se equivocan son aquellos que no intentan hacer algo."
Iván Caballero Cano...
ivanhalen77@gmail.com
Responder Con Cita
  #2  
Antiguo 05-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Algo así:
Código:
miArray := ('Juan', 'Pedro', 'Miguel');
Responder Con Cita
  #3  
Antiguo 05-05-2010
Avatar de flystar
flystar flystar is offline
Miembro
 
Registrado: jul 2006
Posts: 184
Poder: 18
flystar Va por buen camino
No, asi no jala

Buenos días:

Nop asi no jala...
__________________

"Los unicos que no se equivocan son aquellos que no intentan hacer algo."
Iván Caballero Cano...
ivanhalen77@gmail.com
Responder Con Cita
  #4  
Antiguo 05-05-2010
Archer Archer is offline
Miembro
 
Registrado: sep 2005
Ubicación: Valencia
Posts: 28
Poder: 0
Archer Va por buen camino
Creas los botones dinamicamente (por codigo, por ejemplo en "OnCreate" del form en cuestion) y luego un bucle trivial:

Código Delphi [-]
for i := 0 to max do
  AD[i] := boton[i];

Saludos

Última edición por Archer fecha: 05-05-2010 a las 19:30:26. Razón: se habia hecho un lio con las etiquetas de codigo Delphi
Responder Con Cita
  #5  
Antiguo 05-05-2010
Avatar de flystar
flystar flystar is offline
Miembro
 
Registrado: jul 2006
Posts: 184
Poder: 18
flystar Va por buen camino
Los botones ya existen, no requiero crearlos.

Lo que necesito saber es la forma de asignar de un solo golpe y directo
los valores del array dinamico. Sin for.

Quizas exista la forma.

Lo curioso es que si mando un parametro asi en una funcion

funcionasigna ([boton1,boton2]);

y luego en la funcion los asigno a un array dinamico si los acepta..
es curioso no?
__________________

"Los unicos que no se equivocan son aquellos que no intentan hacer algo."
Iván Caballero Cano...
ivanhalen77@gmail.com
Responder Con Cita
  #6  
Antiguo 05-05-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola flystar, una forma de llenar un arreglo dinamico podría ser utilizando la función VarArrayOf:

Código Delphi [-]
 miArray : Array of Integer;
begin
 SetLength(miArray, 3);
 miArray := VarArrayOf([10,20,30,40]);

pero creo que con TButtons no va a funcionar, porque se necesita un Variant.

También puedes llenar tu arreglo de TButtons como te indica Archer.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 05-05-2010 a las 19:45:28.
Responder Con Cita
  #7  
Antiguo 05-05-2010
Avatar de flystar
flystar flystar is offline
Miembro
 
Registrado: jul 2006
Posts: 184
Poder: 18
flystar Va por buen camino
ok

Ok voy a instentar esa
Gracias
__________________

"Los unicos que no se equivocan son aquellos que no intentan hacer algo."
Iván Caballero Cano...
ivanhalen77@gmail.com
Responder Con Cita
  #8  
Antiguo 05-05-2010
Avatar de flystar
flystar flystar is offline
Miembro
 
Registrado: jul 2006
Posts: 184
Poder: 18
flystar Va por buen camino
tampoco

Efectivamente no jala asi por que pide un variant.

Chale...debe existir una forma, ¿Cómo en un parametro si lo acepta?
__________________

"Los unicos que no se equivocan son aquellos que no intentan hacer algo."
Iván Caballero Cano...
ivanhalen77@gmail.com
Responder Con Cita
  #9  
Antiguo 05-05-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Solamente para aclarar.

Los array of algo en un parámetro a función y los array of algo con una variable declarada, no son lo mismo.

El primero es un open array, y el segundo es un arreglo dinámico.

Curiosamente en Delphi se puede construir un open array "al vuelo", pero no un arreglo dinámico... Vaya uno a saber por qué motivo.
Responder Con Cita
  #10  
Antiguo 05-05-2010
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Lord Delfos Ver Mensaje
Solamente para aclarar.

Los array of algo en un parámetro a función y los array of algo con una variable declarada, no son lo mismo.

El primero es un open array, y el segundo es un arreglo dinámico.

Curiosamente en Delphi se puede construir un open array "al vuelo", pero no un arreglo dinámico... Vaya uno a saber por qué motivo.
Perdón pero no entendí lo que quisiste decir Lord Delfos.

Yo creo que lo que necesita flystar es esto.

Código Delphi [-]

var
  Form1: TForm1;
  AD : array of Tbutton;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
var
  i: Integer;
begin
  SetLength(AD,3); // defines los elementos que desees.
  for I := 0 to 2 do
  begin
    AD[i] := FindComponent('Button' + inttostr(i+1)) as TButton;
    AD[i].Caption := 'Botón ' + inttostr(i+1);
  end;
end;

end.

Saludos

Edito: Vaya pues no habia leído esto

Cita:
Lo que necesito saber es la forma de asignar de un solo golpe y directo los valores del array dinamico. Sin for.
NO sirve lo que hice, lo siento

Última edición por egostar fecha: 05-05-2010 a las 20:19:04.
Responder Con Cita
  #11  
Antiguo 05-05-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola egopolice , me alegra verte nuevamente por aquí amiguito .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #12  
Antiguo 05-05-2010
Avatar de flystar
flystar flystar is offline
Miembro
 
Registrado: jul 2006
Posts: 184
Poder: 18
flystar Va por buen camino
En resumen no se puede

En fin, parece que no hay manera directa.

Gracias por su apoyo
__________________

"Los unicos que no se equivocan son aquellos que no intentan hacer algo."
Iván Caballero Cano...
ivanhalen77@gmail.com
Responder Con Cita
  #13  
Antiguo 06-05-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Perdón pero no entendí lo que quisiste decir Lord Delfos.
Vamos a ver si logro explicarme bien...


A flystar le llamaba la atención que si yo tengo una función que recibe un "array of Algo" puedo pasarle un arreglo "al vuelo".

Código Delphi [-]

function Algo(Parametros: array of Integer): Integer;
begin
end;

var Esto: Integer;

begin
  Esto:= Algo([1, 2, 3, 4]);
end;

Es decir que yo ahí estoy creando el arreglo [1, 2, 3, 4] directamente. Lo que flystar decía era, ¿porqué no se aplica la misma lógica cuando yo quiero asignarle eso a una variable común? (no parámetro de función).

La explicacion es que cuando un parámetro está declarado en una función como "array of algo", eso es un open array, mientras que si una variable está declarada de la misma manera, eso es un arreglo dinámico. Que parecen lo mismo, pero no son.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Funcion Array Dinamico??? franss Varios 4 28-08-2008 22:33:23
Array Dinamico Gizhe JAVA 4 04-07-2008 21:39:46
Cómo asignar valores a una variable tipo Array quinqui OOP 7 23-06-2006 16:59:17
Array Dinamico VRO Varios 6 14-06-2005 13:40:16
Array Dinamico senpiterno Varios 4 22-07-2004 19:37:06


La franja horaria es GMT +2. Ahora son las 22:57:47.


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