Curso sobre Visual Basic
por Jorge Serrano (Mundo Visual)

 

Tema Tres ( 9/Ago/97)

Baja el archivo en formato Word (tema3.zip 21.7 KB)


Salto de página

 

En versiones anteriores de Visual Basic, la forma de realizar un salto de página en un TextBox era cambiando la propiedad Multiline a True y escribiendo una constante string cualquiera con valor igual a Chr$(13) & Chr$(10), es decir salto de párrafo.

Con la versión Visual Basic 4.0, se usa una constante VbCrLf que realiza esta función.

 

 

Message Box o MsgBox

 

Las cajas de mensajes o Message Box, tienen una función clara, que es la de mostrar una determinada información, aviso, o pregunta para que el usuario tenga conocimiento de ella y actúe.

 

Hay diferentes formas de mostrar información :

1) El aviso es sí, que tiene por objetivo mostrar una información de interés.

2) El aviso con espera de respuesta, que muestra una información esperando que el usuario seleccione una de las respuestas posibles para que el programa la trate.

 

Una caja de mensaje, puede ser por ejemplo, la instrucción MsgBox "Hola" .

Por defecto, la caja de mensaje será similar a esta :

 

Debe darse cuenta de algunas cosas :

En primer lugar el mensaje, "Hola" que se escribe a continuación de la palabra MsgBox, también debe darse cuenta del botón Aceptar que tiene el Focus de la ventana activa y que sólo hay ese botón, y por último el título de la ventana.

 

Podemos modificar estos parámetros para alcanzar nuestros objetivos, por eso, vamos a escribir ahora este código : MsgBox "Hola", ,"Ejemplo" .

El resultado es :

 

Como podemos apreciar en el código, la caja de mensaje posee un título Ejemplo y el mensaje, pero es posible que deseemos escribir un mensaje en varias líneas con salto de párrafo. Nada tan fácil como este código por ejemplo : MsgBox "Hola" & vbCrLf & "Esto es un ejemplo.", , "Ejemplo".

El resultado es :

 

 

Supongo que se habrá percatado de que entre el mensaje y el título de la ventana, hemos escrito dos comas, esto es porque entre las comas, debe ir un número que representará el icono a mostrar. Existen cuatro iconos diferentes además de la posibilidad de no mostrar ninguno. Los iconos son :

 

Estos iconos corresponden a los siguientes mensajes :

Mensaje crítico.

Mensaje de pregunta.

Mensaje exclamativo.

Mensaje de información.

 

Para mostrar el icono en cuestión o para que Visual Basic lo entienda, es necesario escribir lo siguiente :

Mensaje crítico. VbCritical ó 16

Mensaje de pregunta. VbQuestion ó 32

Mensaje exclamativo. VbExcalamqtion ó 48

Mensaje de información. VbInformation ó 64

 

Note que es lo mismo insertar VbCritical o 16.

 

Vamos a ver un ejemplo añadiendo un icono al último ejemplo :

MsgBox "Hola" & vbCrLf & "Esto es un ejemplo.", vbQuestion , "Ejemplo"

El resultado es :

 

Ahora bien, es posible que queramos mostrar algún otro botón que o bien no sea el de Aceptar o que además del botón de Aceptar haya más botones. Para este propósito, tenemos los siguientes parámetros :

Aceptar vbOKOnly ó 0

Aceptar y Cancelar vbOKCancel ó 1

Anular, Reintentar, Ignorar vbAbortRetryIgnore ó 2

Sí, No y Cancelar vbYesNoCancel ó 3

Sí y No vbYesNo ó 4

Reintentar y Cancelar vbRetryCancel ó 5

Aplicación modal vbApplicationModal ó 0 (Es la caja de mensaje sin icono)

 

La forma de hacer esto es sumar al parámetro del icono que queremos mostrar el valor de los botones que deseamos que aparezcan.

Así por ejemplo :

MsgBox "Hola" & vbCrLf & "Esto es un ejemplo.", vbQuestion + vbYesNo , "Ejemplo"

El resultado es :

 

Aún así, es posible que deseemos que el Focus lo adquiera otro un botón determinado. Por ejemplo, en este caso el Focus lo tiene el botón , pero es posible que deseemos que lo tenga el botón No por ejemplo. Esto se consigue con los siguientes parámetros :

Primer botón predeterminado vbDefaultButton1 ó 0

Segundo botón predeterminado vbDefaultButton2 ó 256

Tercer botón predeterminado vbDefaultButton3 ó 512

 

Por ejemplo : MsgBox "Hola" & vbCrLf & "Esto es un ejemplo.", vbQuestion + vbYesNo + vbDefaultButton2, "Ejemplo"

El resultado es :

 

Si no se señala el botón predeterminado, Visual Basic seleccionará el primer botón.

En caso de seleccionar como predeterminado un botón que no existe, (por ejemplo el tercero), Visual Basic seleccionará el primero.

 

Ahora bien, si decidimos mostrar un mensaje esperando una respuesta, o queremos saber que botón ha pulsado el usuario, esto lo podemos conseguir mediante el siguiente código de respuestas :

Aceptar vbOK ó 1

Cancelar vbCancel ó 2

Anular vbAbort ó 3

Reintentar vbRetry ó 4

Ignorar vbIgnore ó 5

Sí vbYes ó 6

No vbNo ó 7

 

Así por ejemplo, el siguiente código :

Dim Resp As Integer

Resp = MsgBox("Hola" & vbCrLf & "Esto es un ejemplo.", vbQuestion + vbYesNo + vbDefaultButton2, "Ejemplo")

If Resp = 6 Then

MsgBox "Ha pulsado SI"

Else

MsgBox "Ha pulsado NO"

End If

Tiene el resultado siguiente :

 

 

 

Si pulsamos el botón obtendremos una acción, y si pulsamos el otro botón otra acción.

 

Ahora bien, para elegir o seleccionar un evento o acción, el usuario debe saber combinar los códigos, sabiendo que un MsgBox posee la siguiente sintaxis principal:

MsgBox Mensaje, Botones, Título de la ventana

 

 

InputBox

 

El InputBox o caja de entrada es otra de las partes más utilizadas para la interacción del usuario con la aplicación. Es importante que el usuario interactúe con la aplicación para ser el protagonista de esta.

 

El InputBox nos permite sacar una caja donde el usuario pasará un parámetro, valor o dato para que el programa lo trate y lo ejecute.

 

El mensaje que quiere que aparezca se realiza de forma casi idéntica al MessageBox. Puede escribirse varias líneas de texto seguidas por la constante de Visual Basic VbCrLf o salto de línea o párrafo.

 

La sentencia es : Val = InputBox (Mensaje, Titulo, ValorPredeterminado)

Val almacenará el texto escrito por el usuario, que puede ser una cantida, cadena string, … etc.

 

Por ejemplo :

Dim Val As String

Val = InputBox("Deme su nombre", "Ejemplo")

MsgBox "Su nombre es: " & Val

Tiene como resultado :

 

 

Ahora bien, podemos determinar un texto predeterminado a la caja de entrada, como por ejemplo :

Dim Val As String

Val = InputBox("Deme su nombre", "Ejemplo", "Mundo Visual")

MsgBox "Su nombre es: " & Val

Obtendremos como resultado :

 

Es importante determinar que si el usuario elige el botón Cancelar, el programa devolverá una cadena de caracteres igual a 0, es decir, Val="".

 

La caja de entrada puede ser sin embargo más personalizada mediante dos parámetros como son la posición de la ventana de entrada de datos en la pantalla. Estos parámetros se ponen a continuación del ValorPredeterminado.

Por ejemplo :

Dim Val As String

Val = InputBox("Deme su nombre", "Ejemplo", "Mundo Visual", 1200, 1400)

Situará la ventana en el eje de las X a 1200 twips (posición horizontal) y la Y a 1400 twips (posición vertical).

 

 

Repaso : Hemos visto en este capítulo el uso de MsgBox, y InputBox, los cuales nos van a servir de gran utilidad en nuestros proyectos Visual Basic.


ir al índice