PDF de programación - CursoVB - Capítulo 2

Imágen de pdf CursoVB - Capítulo 2

CursoVB - Capítulo 2gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 22 de Enero del 2018)
571 visualizaciones desde el 22 de Enero del 2018
267,7 KB
11 paginas
Creado hace 11a (24/09/2012)
CURSO DE VB

CAPÍTULO 2

Índice de contenido
1.- PROCEDIMIENTOS Y FUNCIONES...........................................................................................2
UN PRIMER ACERCAMIENTO...................................................................................................2
TIPOS DE FUNCIONES Y PROCEDIMIENTOS.........................................................................4
ARGUMENTOS..............................................................................................................................4
EL ADORNO FINAL: BYVAL, BYREF y PARAMARRAY........................................................6
UN GRAN EJEMPLO.........................................................................................................................6
UN POCO MÁS DEL ENTORNO DE TRABAJO.............................................................................8
AYUDA CONTEXTUAL................................................................................................................8
SEPARACIÓN DE LA MISMA LÍNEA EN VARIAS...................................................................9
INTERDENTADO...........................................................................................................................9
COMENTARIOS...........................................................................................................................10

Visítame en http://siliconproject.com.ar/neckkito/

1

1.- PROCEDIMIENTOS Y FUNCIONES

UN PRIMER ACERCAMIENTO

Vamos a empezar este segundo capítulo hablando de cosas
tan “raras” como procedimientos y funciones.

La idea para llegar a tales conceptos empieza por algo tan
simple como: vamos a escribir un bloque de código, pero,
¿dónde lo metemos?

Y un poquito más allá, si en lugar de un bloque de código
queremos escribir varios, ¿cómo lo hacemos? ¿Lo
escribimos “todo seguido”? ¿Los separamos con rayas o con
puntos?

Para poder delimitar el “inicio” y el “fin” de un código en VB (en estos inicios del curso)
tenemos dos palabras reservadas, que son:




Sub: que correspondería a un procedimiento
Function: que correspondería a una función

Eso sería nuestro “inicio”, y lo que permitiría a VB saber que empieza un bloque. Los “fines”
serían, pues:




End Sub
End Function

La siguiente pregunta lógica sería: ¿por qué hay dos tipos, y no uno? La respuesta viene dada
por lo que queramos que haga el código.

Es decir, que lo anterior representa que podemos realizar dos tipos de operaciones.

1.- Si queremos que se ejecuten acciones necesitamos un procedimiento, esto es, necesitamos
utilizar un Sub.

2.- Si queremos obtener un valor necesitamos una función, esto es, necesitamos utilizar una
Function.

Lo vamos a ver muy claro a través de un ejemplo simple: imaginemos que tenemos un
formulario con un cuadro de texto y un botón. Y lo que queremos es que, al pulsar el botón, en
el cuadro de texto nos aparezca la fecha actual.

En este caso nos encontramos con dos elementos:

El primero, obtener un valor, que en este caso será la fecha actual.
El segundo, realizar una acción, que en este caso sería “conseguir que textBox nos



mostrara la fecha actual”.

¿Vamos viendo la “estructura”? ;)

El ejemplo es tan simple (y aunque fuera un poco más complicado también nos serviría) que
podemos englobar ambas acciones en un procedimiento. Así, escribiríamos lo siguiente:

Visítame en http://siliconproject.com.ar/neckkito/

2


Sub escriboFecha()

'Declaramos las variables. Os recuerdo que esto lo

vimos en el primer capítulo!
Dim fechaAhora As Date

'Cogemos la fecha del sistema

fechaAhora = Date

'Escribimos el valor obtenido en el textBox
Forms!NombreForm.textBox.Value = fechaAhora

'Indicamos el fin del procedimiento

End Sub


Y al pulsar el botón nos aparecería en nuestro textBox la fecha actual.

Como vemos, lo hemos escrito todo en un procedimiento. Ahora imaginemos que la obtención
de la fecha actual fuera un proceso muy complicado, o que continuamente necesitáramos
calcular la fecha para cada uno de los 50 textBox que tenemos en nuestro formulario. En ese
caso lo mejor hubiera sido separar el anterior procedimiento en sus dos elementos: un sub y
una función.

Así por una parte, tendríamos:


Function calculoFecha() As Date

calculoFecha = Date

End Function


Ahora calculoFecha siempre nos dará el valor de la fecha actual. Sólo tendremos que invocarla
(a la función) para conseguir su valor. El procedimiento se escribiría pues así:

'Llamamos a la función y guardamos su valor en nuestra variable


Sub escriboFecha()

'Declaramos la variable

Dim fechaAhora As Date

fechaAhora = calculoFecha()
'Rellenamos el textBox

Forms!NombreForm.textBox.Value = fechaAhora

'Finalizamos el proceso

End Sub


De lo anterior podemos quedarnos también con la idea de que para nombrar un procedimiento
o una función debemos seguir esta estructura:

Sub nombreProcedimiento()

Function nombreFuncion() As <tipoDato>

Lógicamente, si la función nos devuelve un valor, debemos indicarle qué tipo de valor debe
devolver (podemos encontrar la similitud con la declaración de variables que veíamos en el
capítulo 1).

Visítame en http://siliconproject.com.ar/neckkito/

3

Bueno. La idea principal de esta primera aproximación era distinguir entre funciones y
procedimientos, y para qué sirve cada uno. Vamos a seguir profundizando en el tema.

TIPOS DE FUNCIONES Y PROCEDIMIENTOS

Hablar de funciones y procedimientos “a palo seco” queda
muy “soso”, por lo que vamos a ponerles motes. Además, al
realizar esta “puesta de motes”, vamos a conseguir un
efecto interesante, que es lo que se denomina “delimitar el
ámbito de actuación”.

Existen varios “motes” para poner a ambos elementos. Veámoslos:
Private: esta es una definición del procedimiento o función restrictiva, de manera que

todo lo que escribamos en el bloque de código no es accesible más que dentro de ese bloque
de código.

Por ejemplo, si definimos una variable dentro de ese bloque (por ejemplo, Dim miVar as Long),
sólo podremos “llamar” a esa variable dentro de ese bloque de código. Si escribimos otro y una
línea dijera: miVar = 5, nos saltaría el error “No se ha definido la variable” porque, si bien está
definida, lo está en otro procedimiento “private”, al cual no se tiene acceso.

Public: esta definición es lo contrario a la anterior. Indica que el procedimiento estará


accesible para el resto de procedimientos y funciones de todos los módulos.

Estos dos serán los que, en teoría, utilizaremos más comúnmente. Existen otros un poco más
“especiales”, que son:

Friend: se utiliza sólo en módulos de clase. No entraremos más en detalles sobre él.

Static: si recordamos en el capítulo 1, cuando hablábamos de variables, comentábamos

que podíamos definir una variable como static, lo que significaba que “almacenaba” los valores
que iba tomando y no se reinicializaba en cada ejecución. Pues, por extensión, en un
procedimiento o función static las variables locales se conservan entre distintas llamadas.

ARGUMENTOS

A un procedimiento o función le podemos indicar que hay argumentos (o no). Si no hay
argumentos escribimos, tras su nombre, un paréntesis de apertura y de cierre, tal y como
hemos visto en el ejemplo que hemos planteado un par de páginas antes.

Los argumentos pueden ser obligatorios y opcionales. Si no indicamos nada serán obligatorios;
si queremos que sean opcionales debemos indicarlo añadiendo la palabra “Optional” antes del
argumento.

Aplicado a lo que ya sabemos se estructuraría de la siguiente manera:

Public/Private Sub nombreSub(argumento1, argumento2, …, Optional argumentoX)

Public/Private Function nombreFuncion(argumento1 As <tipoDato>, argumento2 As
<tipoDato>, …, Optional argumentoX As <tipoDato>) As <tipoDato>

Y esto tan teórico, ¿cómo se come?

Vamos a verlo con un ejemplo muy simple: imaginemos que queremos que al pulsar un botón

Visítame en http://siliconproject.com.ar/neckkito/

4

nos aparezca un mensaje con la fecha de mañana. Sé que lo que voy a explicar no es el
procedimiento óptimo pero me servirá para que lo entendáis.

En el código asociado al botón vamos a realizar las
siguientes acciones:

1.- Vamos a definir una variable que nos recogerá la fecha
actual.
2.- Vamos a llamar a un procedimiento que se encargará de
encontrar el día siguiente y mostrarnos el mensaje que
queremos.
3.- Al tiempo que llamamos al procedimiento le pasaremos
el valor sobre el que debe realizar los calculos, que en
nuestro caso será la variable miFecha.

Esto lo escribiríamos así:

'Definimos la variable

Dim miFecha As Date

'Le asignamos la fecha actual

miFecha = Date

'Llamamos al procedimiento


Private Sub...

Call fechaManana(miFecha)
End Sub


Como podemos ver, a través de la palabra reservada CALL llamamos a un procedimiento, y no
sólo eso, sino que le decimos que los cálculos los debe realizar sobre nuestra variable miFecha,
indicándoselo así entre paréntesis.

En el procedimiento deberíamos indicarle esa circunstancia a través de la definición de un
argumento. Así, escribiríamos:


Public sub fechaManana(unaFecha)

'Realizamos el cálculo del día de mañana

unaFecha = unaFecha + 1

'Mostramos el mensaje

MsgBox “Mañana será día “ & unaFecha
End Sub


Si analizamos el código veremos que:

El procedimiento fechaManana(unaFecha) lo hemos declarado como Public para tener

El argumento “unaFecha” ha cogido su valor desde miFecha, y eso lo hemos hecho a


acceso a él desde cualquier módulo.

través de la llamada Call fechaMañana(miFecha)
Hemos creado un Sub porque queríamos una acción (mostrar un cuadro de mensaje).

Si sólo hubiéramos querido saber el valor de mañana no hubiéramos escrito un Sub, sino una
Function.

Visítame en http://silicon
  • Links de descarga
http://lwp-l.com/pdf8424

Comentarios de: CursoVB - Capítulo 2 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad