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 S�, 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 S� 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.