viernes, 12 de septiembre de 2008

Pasar Parámetros a los procedimientos en Visual Basic 6.0



Se utilizan los parámetros en los procedimientos para que el procedimiento no ejecute siempre las mismas líneas de código y pueda variar, teniendo la posibilidad de hacerlo mas dinámicamente. En ciertas ocaciones no es necesario enviar parámetros, pero en otras es prácticamente fundamental. Los parámetros son datos, casi de cualquier tipo, que se pasan seguido del nombre del procedimiento, y si es mas de uno deben ir separados por comas (,). Ejemplo:

DatosPersonales "Luciano", 25, "La plata"

En este ejemplo pasamos tres parámetros: El primero es un nombre y es un dato de tipo String y por ende debe ir entre comillas. El segundo es un número y el tercero también un string. , o sea una cadena de caracteres

Pero la cosa no queda acá. Si nosotros vamos a pasar parámetros a un procedimiento, cuando creamos el procedimiento debemos establecer que tipo de parámetros va a recibir el mismo. Ejemplo:

Private Sub DatosPersonales(nombre As String, edad As Integer, ciudad As String)

Label1 = nombre
Label2 = edad
Label3 = ciudad

End Sub


siguiendo, el ejemplo anterior creamos un procedimiento con tres parámetros. Cada parámetro se declara como se hace con las variables, o sea que debemos darles un nombre a la variable y definir el tipo de dato ( sin utilizar la palabra Dim ) que recibirá cuando las llamemos.

Ahora podríamos por ejemplo, en el evento click de un Command1, llamar al procedimiento y pasarle los parámetros.

Coloca un Command1 , 3 controles Label, copia en la ventana de código el procedimiento anterior llamado DatosPersonales, y ahora pega el siguiente código

Private sub command1_click()

DatosPersonales "Luciano", 25, "La plata"

End sub


Al presionar el botón se llamará al procedimiento que habíamos creado anteriormente, y le pasará los valores de los parámetros en el orden en que estén establecidos declarados en el procedimiento. Esto quiere decir que el primer parámetro con el valor "Luciano" se almacenará o asignará a la variable nombre , el valor 25 se le asignará a la variable edad y el último valor a la variable ciudad.

Después que las variables ya cargaron el valor las podemos utilizar dentro del procedimiento, como en el ejemplo anterior que le asignamos a un control Label1 el contenido de la variable nombre, al Label2 el contenido de edad y al Label3 el contenido de la variable ciudad.

Es muy importante respetar el orden en que pasamos los parámetros en un procedimiento, por que por ejemplo en el caso anterior si hubiésemos pasado los parámetros de esta forma:

DatosPersonales 25, "Luciano", "La plata"

el segundo parámetro "Luciano" se almacenaría en la variable Edad que es de tipo Integer y se produciría un error en tiempo de ejecución por no coincidir los tipos de datos, ya que la variable espera un valor numérico de tipo Integer y nosotros le estamos pasando una cadena de caracteres, un dato de tipo String

Otra cosa importante es que cuando creamos, por ejemplo un procedimiento que va a recibir 2 parámetros, cuando lo llamemos, no podemos enviarle solo 1 parámetro, debemos obligatoriamente pasarle los 2 parámetros que hubiésemos declarado en el mismo. Un ejemplo que daría un error en tiempo de ejecución por no pasar adecuadamente los parámetros sería:

Private Sub sumar(a As Integer, b As Integer)

Label1 = a + b

End Sub


hasta aquí creamos un procedimiento llamado sumar que recibirá 2 parámetros de tipo Integer, si nosotros llamamos al procedimiento y le pasamos un solo valor, por ejemplo:

Call sumar ( 456 )

Esto daría un error de compilación por que el procedimiento espera recibir 2 parámetros ..y nosotros le estamos pasando o enviando solo uno de ellos.

Precisamente el cartel de error que te mostraría visual basic sería el siguiente:

Nota: hay una sentencia llamada Optional que SI permite pasar parámetros de forma opcional, por ejemplo:

Private Sub Con_Parametro_Opcional(Nombre As String, _
Optional Email As String)
MsgBox Nombre

MsgBox Email

End Sub


Ahora si llamas a la rutina anterior, y omites el parámetro Email, esta no dará error, por ejemplo:

Call Con_Parametro_Opcional("Maria")

Nota: Los parámetros opcionales, si o si deben estar declarados al final de la lista de parámetros, por ejemplo esto no se puede hacer:

Private sub una_Rutina ( Optional Email As String, Nombre as String )

3 comentarios:

Mr X dijo...

Muy bien, oye pero sabes como hago para darle parametros iniciales a la hora de iniciar un programa? por ejemplo que mi programa principal inicie otro programa y le entrege algunos parametros iniciales? muchas gracias, si tienes tiempo y quieres ayudarme te agradeceria alguna pista para hacer esto a mi corrreo: jorgeriv@gmail.com

Anónimo dijo...

que tal jorge antes que nada permiteme saludarte y desearte que tengas un excelente dia, asi mismo agradecerte de antemano que visites mi blog.

mira lo que pasa es que no entiendo muy bien tu pregunta, bueno mas bien no la especificas pero a lo que entendi, lo que tu quieres es que tu programa al momento de ejecutar ya tenga algunos valores tu procedimiento.

para esto lo que tienes que hacer es colocarlo en el evento load del formulario y alli agregarle los valores con los que quieres que inicie tu procedimiento, espero y que me haya explicado.

Unknown dijo...

Hola, antes que nada te agradezco por tu aporte, seguro que es de gran ayuda para muchos. Quiero consultarte algo, ¿Es posible pasarle parámetros a una aplicación de vb basic desde una aplicación distinta? por ejemplo, Tengo creada una aplicación en C que captura dos numeros y desde esta quiero llamar un programa en vb que los sume y me presente el resultado en un msgbox. ¿es posible hacerlo y, de ser así, cómo lo hago?