Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
¿ Alguien Ha Probado La Clase Param ?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje ¿ Alguien Ha Probado La Clase Param ? 
 
Hola!.

Pues eso.
Según la ayuda:

Citar:

Esta clase estática se emplea para:
Recibir el valor de los parámetros extra de un método que toma un número variable de argumentos.
Recibir información acerca del nombre del método llamado en el método especial _unknown.


http://gambasdoc.org/help/comp/gb/param?es

Ejemplo, siempre que se pueda.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Param ? 
 
Aqui tienes un ejemplo:

Public Sub Form_Open()
  
  Dim TextBox1 As New TextBox(Me)
  
  pruebas("hola", "adios", 20, "pepito", textbox1)
  
End

Public Sub pruebas(...)
  
  Dim v As Variant
  
  Print "Numero de parametros introducidos:", Param.Count
  
  For Each v In Param
    Print "valores: ", v
  Next
  
End
 


Salida por consola:
Citar:

Numero de parametros introducidos:      5
valores:        hola
valores:        adios
valores:        20
valores:        pepito
valores:        (TextBox 0x9b6eb1c)


Como ves la subrutina pruebas tiene un numero indefinido de parametros ("..."), y param recoge los valores que le has pasado.


Nunca la he usado...pero para el tema de constructores (tal como se usa en otros lenguajes de programación) en las clases tiene muchas aplicaciones  

Nota:
Me lo apunto para añadirlo al curso de gambas  


Añadido al curso de gambas: http://cursogambas.blogspot.com.es/...-numero-de.html
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Miercoles, 16 Abril 2014, 15:31; editado 2 veces 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Param ? 
 
Hola Julio.

jsbsan escribió: [Ver mensaje]

Como ves la subrutina pruebas tiene un numero indefinido de parametros ("..."), y param recoge los valores que le has pasado.

Nunca había visto  que se podía definir los parámetros indefinidos de esa forma ("...")  

La raíz de la pregunta vino por el tema de un paso de x's paramentos a una función de los tipos que fuesen.
Si es un array son de un tipo definido, ejemplo String. Si es una colección puede ser cualquier tipo y si es Variant[]
ídem de lo mismo.

Hice esto:

Public Sub Main()
  
  Dim col_parametros As New Collection
  
  With col_parametros
    .Add("Pedro", "parametro1")
    .Add(25, "parametro2")
    .Add(840.34, "parametro3")  
  End With
  
  EjemploFuncionMuyLarga(col_parametros)
  
End

Public Function EjemploFuncionMuyLarga(parametros As Collection)
  
  Dim parametro As String
  
  For Each parametro In parametros
    Print parametro
  Next  
  
End
 

Según como sea la cosa se le puede pasar un tipo definido o un objeto. Pudiera haber sido un trabajador, de una edad, un sueldo, etc.
Como el valor de una colección es también del tipo Variant. Pasando una colección vale cualquier tipo.

Me alegro de motivar ideas para el curso. Gracias por el ejemplo!.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Param ? 
 
Yo lo he usado un par de veces en constructores tal como comenta jsbsan.

Esto me recuerda a que al principio lo confundí con los parámetros opcionales cuando en realidad no tienen nada que ver. Los opcionales se definen en la declaración de la función y en la llamada se pueden utilizar o no, mientras que los ... no están definidos en ningún sitio.

Otro tema que me llama la atención son los valores por defecto de un parámetro opcional: Si es integer será 0 y si es string será "" y no he encontrado la forma de saber si están presentes o no.

Es decir, si defines


No he encontrado la forma de distinguir entre las llamadas:

Proc()
Proc(0)
 

En este caso, creo recordar que la clase Param devuelve un error ya que solo sirve para definiciones tipo
Public Sub Proc(...)

 



 
gatoviejo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿ Alguien Ha Probado La Clase Param ? 
 
Estuve mirando la wiki de gambas, y encontré la definición.
Parecía tan rara.  

http://gambasdoc.org/help/lang/methoddecl?es

Esa forma de parámetros indefinidos, vale tanto como para procedimientos como para funciones.
Veo que algo para los mas nuevos usuarios y los no tanto.
Comprender mejor paréntesis, corchetes en la defunción de la función o procedimientos es importante.

Creo otro post.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes ¿Alguien Ha Probado La Variable De Entorn... shordi General 16 Miercoles, 28 Abril 2010, 17:16 Ver último mensaje
shordi
No hay nuevos mensajes Código De Clase Button Alguien Sabe Donde... v3ctor General 7 Martes, 12 Abril 2016, 14:01 Ver último mensaje
Invitado
No hay nuevos mensajes Param Shell General 6 Viernes, 08 Marzo 2019, 13:48 Ver último mensaje
Shell
No hay nuevos mensajes ¿ Alguien Ha Probado La Clase Task ? Shell General 9 Viernes, 03 Abril 2020, 17:45 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron