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 25-10-2006
robinsongm robinsongm is offline
Miembro
 
Registrado: sep 2004
Ubicación: Madrid, España
Posts: 25
Poder: 0
robinsongm Va por buen camino
Red face Uso de variables tipo Variant

Saludos,

Tengo una función similar a :

NameFunction(Params: Array of Variant): String;

¿Cómo puedo saber la cantidad de parámetros que me han pasado?

¿Cómo sé de que tipo especifico es cada elemento del array, para luego convertirlo a string?

El caso es que quiero crear una cadena parecida a: 'Valor1, Valor2, Valor3, Valor4....ValorN' de tipo string. En principio los valores posibles en los parámetros serían primitivos (boolean, integer, int64, string, bye...).
Bien sé que podría solicitar Params como Array of String, pero parte de la funcionalidad de la función, valga la redundancia, se perdería.

¿Como hacer esto?

GRACIAS!!!
__________________
Ni la utilidad del mentir es sólida, ni el mar de la verdad perjudica mucho tiempo.
Responder Con Cita
  #2  
Antiguo 25-10-2006
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,

Ignoro si esta es una forma muy elegante de hacerlo, pero, parece funcionar...

Código Delphi [-]
function Linda(parametros: array of Variant) : string;
var
  i: integer;
begin
  for i := 0 to Length(parametros)-1 do
    ShowMessage( string(parametros[i]) );
end;

// Ejemplo de llamada a Linda
Linda(['Cadena', 1, 0.1, false]);

Incluso parece que el "cast" a "string" sobraría, puesto que parece que el compilador se encarga de ello. De hecho lo siguiente funciona exactamente igual que lo anterior:

Código Delphi [-]
function Linda(parametros: array of Variant) : string;
var
  i: integer;
begin
  for i := 0 to Length(parametros)-1 do
    ShowMessage( parametros[i] );
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 25-10-2006
robinsongm robinsongm is offline
Miembro
 
Registrado: sep 2004
Ubicación: Madrid, España
Posts: 25
Poder: 0
robinsongm Va por buen camino
Muchas Gracias!

Al menos para lo que quiero me vale!

Gracias !!
__________________
Ni la utilidad del mentir es sólida, ni el mar de la verdad perjudica mucho tiempo.
Responder Con Cita
  #4  
Antiguo 25-10-2006
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Hola Delphi trae toda una coleccion de funciones para manejar eso:

COn
Cita:
function VarArrayDimCount(const A: Variant): Integer;

Description

VarArrayDimCount returns the number of dimensions of the given Variant. The resulting value is zero if the given Variant is not a Variant array.

TE devuelve la Dimiencion del Array
y con.

Cita:
function VarArrayHighBound(const A: Variant; Dim: Integer): Integer;

Description

VarArrayHighBound returns the high bound of the given dimension in the given Variant array. The Dim parameter should be 1 for the leftmost dimension, 2 for the second leftmost dimension, and so on. An EVariantError exception is raised if the Variant given by A is not an array, or if the dimension specified by Dim does not exist.
La Longitud
luego deberias aplicar un FOR como de dijo dec

Saludos
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
Variant, de que tipo? Barzaugc Varios 2 26-08-2005 21:14:30
Igualaciones con una variable tipo Variant en Excel VRO Servers 3 04-05-2005 17:54:43
Variables Tipo Pointer omar_e_rc Varios 4 24-03-2005 18:51:34
funcion que devuelve el tipo de dato de un variant samame OOP 3 08-07-2004 16:02:30
Error usando tipo Variant silviodp Varios 5 04-02-2004 11:16:15


La franja horaria es GMT +2. Ahora son las 08:22:11.


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