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 05-09-2012
fcios fcios is offline
Miembro
 
Registrado: jul 2003
Posts: 108
Poder: 21
fcios Va por buen camino
Question declarar open array

Hola y gracias de antemano

Código Delphi [-]

// tengo definida esta funcion
mifuncion1( aCampos: array of string):boolean;

// y la llamo con
mifuncion1(['c1','c2','1','2'])

// pero quiero poder mandarle otro array, por ejemplo

mifuncion1(['a1','a2','a3','a4'],['b1','b2','b3','b4']) // esto no compila 
// ó
mifuncion1([['a1','a2','a3','a4'],['b1','b2','b3','b4']]) // esto tampoco compila  

como debo definirla ?
ó como le debo mandar los arrays

Gracias

Última edición por roman fecha: 05-09-2012 a las 20:52:59. Razón: Corregir la etiqueta [delphi]
Responder Con Cita
  #2  
Antiguo 05-09-2012
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
¿Y por qué habría de compilar?

Tu función está declarada para aceptar un sólo parámetro y quieres pasarle dos (cada arreglo es un parámetro).

// Saludos
Responder Con Cita
  #3  
Antiguo 05-09-2012
fcios fcios is offline
Miembro
 
Registrado: jul 2003
Posts: 108
Poder: 21
fcios Va por buen camino
bueno bárbaro y entonces como la defino ?
Responder Con Cita
  #4  
Antiguo 05-09-2012
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
¿Poniendo dos parámetros en la definición?

// Saludos
Responder Con Cita
  #5  
Antiguo 05-09-2012
fcios fcios is offline
Miembro
 
Registrado: jul 2003
Posts: 108
Poder: 21
fcios Va por buen camino
sí pero la quiero definir para poder mandarle n parámetros
y con array of array of string me da error en la definición
Responder Con Cita
  #6  
Antiguo 05-09-2012
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
No estoy seguro, pero creo que no puedes tener arreglos multidimensionales como parámetros abiertos. A lo sumo, puedes hacer una combinación de parámetros abiertos y arreglos dinámicos:

Código Delphi [-]
type
  TDynamicStringArray = array of String;

procedure Foo(MultiArray: array of TDynamicStringArray);
begin
end;

Llamada:

Código Delphi [-]
var
  A, B: TDynamicStringArray;

begin
  SetLength(A, 2);
  A[0] := 'Hola'; A[1] := 'mundo';

  SetLength(B, 4);
  B[0] := 'ClubDelphi';
  B[1] := 'es';
  B[2] := 'el';
  B[3] := 'mejor';

  Foo([A, B]);
end;

// Saludos
Responder Con Cita
  #7  
Antiguo 06-09-2012
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Podría ser

Código Delphi [-]
type
  TArrayString=array of array of string;

procedure TForm3.Button2Click(Sender: TObject);
var
   AValues:TArrayString;
   i,j:Integer;
begin
     {Dimensionas la matriz 2x3}
     SetLength(AValues,2,3);

     {asignas valores}
     for i := Low(AValues) to High(AValues) do
         for j := Low(AValues[i]) to High(AValues[i]) do
             AValues[i,j]:=IntToStr(i*j);

     {Procesa la matriz: la tira a un tmemo}
     FncString(AValues);
end;

procedure TForm3.FncString(AValues:TArrayString);
var i,j:Integer;
begin
     for i := Low(AValues) to High(AValues) do
         for j := Low(AValues[i]) to High(AValues[i]) do
             Memo1.Lines.Add(Format('AValue(%d,%d)=%s',[i,j,AValues[i,j]]));
end;

Saludos cordiales
Responder Con Cita
  #8  
Antiguo 07-09-2012
fcios fcios is offline
Miembro
 
Registrado: jul 2003
Posts: 108
Poder: 21
fcios Va por buen camino
Gracias Roman y cloayza

pero la idea es poder llamarla sin tener que andar definiendo una matriz antes de llamarla
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Declarar variable y select en la misma llamada a Query.Open Lord Delfos SQL 5 20-02-2008 01:05:19
¿Cómo declarar una API en C? aeff C++ Builder 2 20-10-2006 02:23:29
Declarar variable pública.. JODELSA Varios 8 04-05-2006 13:45:48
declarar un float en delphi dmagui Firebird e Interbase 5 29-09-2005 18:18:10
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo morfeo21 Varios 5 17-08-2004 17:39:51


La franja horaria es GMT +2. Ahora son las 21:09:02.


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