You are on page 1of 9

Funcin: MsgBox() Esta funcin se emplea para desplegar mensajes en una ventana de dilogo, es decir, muestra ventanas interactivas

con mensajes; la ventana presenta diversos botones, y dependiendo del botn en el cual el usuario haga click, se retorna un nmero de tipo Integer (entero simple).

La Sintaxis genrica es as:

MsgBox(mensaje[,botones] [,ttulo] [,archivoayuda, contexto])

La funcin MsgBox() se puede utilizar, por lo menos, con tres de los argumentos presentes en la sintaxis genrica: mensaje, botones, ttulo; con dicho formato se utilizar en los proyectos iniciales. En la tabla siguiente se hace una descripcn de los diferentes argumentos para la funcin MsgBox():

Argumento Descripcin mensaje Requerido. Es una expresin String (alfanumrica) desplegada como mensaje en la ventana de dilogo. El tamao mximo de dicho mensaje es de aproximadamente 1024 caracteres, dependiendo del ancho de los caracteres utilizados. Si el mensaje consiste de ms de una lnea (un mensaje multilnea), se puede emplear el caracter de "avance de lnea y retorno de carro" (tecla Intro), obtenido con la funcin Chr(13), insertado entre cada lnea.

botones Opcional. Es una expresin numrica que es la suma de los cdigos especificadores del nmero y tipo de botones a desplegar, el estilo de cono a utilizar, la identificacin del botn activado de manera estndar, y la modalidad de la ventana interactiva de mensajes. Si este argumento se omite, el valor tomado por botones es 0.

ttulo Opcional. Es una expresin String (alfanumrica)que se despliega en la barra de ttulo y control de la ventana. Si se omite el argumento ttulo, aparecer como ttulo d ela ventana el nombre de la aplicacin (proyecto).

archivoayuda Opcional. Es una expresin String (alfanumrica) que especifica el archivo de ayuda, el cual proporciona ayuda sensible al contexto (contextual) para la ventana de dilogo. Si este argumento archivoayuda se suministra, tambin se ha de suministrar el argumento context.

contexto Opcional. Expresin numrica que es el nmero contextual de la ayuda asignado al tpico apropiado. Si se proporciona el argumento contexto, tambin ha de suministrarse el argumento archivoayuda.

Parmetros

Los posibles valores (denominados constantes simblicas) para el argumento botones se presentan en la tabla siguiente:

Constante simblica Valor Descripcin vbOKOnly 0 Despliega slo el botn OK (Aceptar) vbOKCancel 1 Despliega los botones OK (Aceptar) y Cancel. vbAbortRetryIgnore 2 Despliega los botones Abort, Retry, e Ignore. vbYesNoCancel 3 Despliega los botones Yes, No, y Cancel

vbYesNo 4 Despliega Yes y No. vbRetryCancel 5 Despliega los botones Retry y Cancel. vbCritical 16 Despliega el cono de error o de CriticalMessage. vbQuestion 32 Display Warning Query icon. vbExclamation 48 Despliega un cono informativo, o un WarningMessage. vbInformation 64 Despliega un cono informativo, o un InformationMessage. vbDefaultButton1 0 El primer botn es el estndar (activado). vbDefaultButton2 256 El segundo botn es el estndar (activado). vbDefaultButton3 512 El tercer botn es el estndar (activado). vbDefaultButton4 768 El cuarto botn es el estndar. vbApplicationModal 0 La Aplicacin (el proyecto) es modal; es decir, que el usurio debe responder a la ventana de mensajes, para poder continuar con la aplicacin (proyecto en ejecucin).

vbSystemModal 4096 Todo el sistema es modal; todas las aplicaciones son suspendidas en su ejecucin hasta tanto el usuario responda a la ventana de mensajes.

vbMsgBoxHelpButton 16384 Aade un botn de Ayuda a la ventana de mensajes. VbMsgBoxSetForeground 65536 Especifica que la ventana de mensajes es la ventana del primer plano, es decir, la ventana que tiene el enfoque o ventana activa.

vbMsgBoxRight 524288 El texto desplegado en la ventana se alinea a la derecha.

vbMsgBoxRtlReading 1048576 Especifica que el texto debe aparecer de derecha-a-izquierda, como se lee en los sistemas Hebreo y rabe.

El primer grupo de valores (0 5) describe el nmero y tipo de botones desplegados en la ventana de mensajes; el segundo grupo de valores (16, 32, 48, 64) describe el estilo del cono que aparece en la ventana de mensajes; el tercer grupo de valores (0, 256, 512) determina cul botn es el estndar (el activado); y el cuarto grupo de valores (0, 4096) determina la modalidad de la ventana de mensajes. Cuando se suman nmeros para crear un valor final correspondiente al argumento botones, se emplea nicamente un nmero de cada grupo (como en: 4 + 32).

Valores retornados

Constante simblica Valor Descripcin del botn vbOK 1 OK vbCancel 2 Cancel vbAbort 3 Abort vbRetry 4 Retry vbIgnore 5 Ignore vbYes 6 Yes vbNo 7 No

Observaciones

Cuando tanto el argumento archivoayuda y el argumento contexto se suministran, el usuario puede pulsar la tecla funcional F1 para visualizar el tpico de la ayuda correspondiente al argumento contexto.

Si la ventana de mensajes despliega el botn Cancel, al pulsar la tecla ESC se tendr el mismo efecto que si se hace click sobre el botn Cancel.

Si la ventana de mensajes contiene un botn de ayuda Help, entonces Visual Basic proporciona ayuda contextual para la ventana de mensajes.

Otra forma de emplear la funcin MsgBox() es asignando su valor a una variable entera, como en la expresin de asignacin siguiente:

Tecla = MsgBox(MM$, 4 + 32, TT$)

En este caso, las variables MM$ y TT$, ambas de tipo String, han de estar previamente definidas y con contenidos asignados. Y la expresin 4 + 32

genera una ventana de mensajes del tipo S/No con un cono de interrogacin.

Ejemplos

En el siguiente ejemplo se utiliza la funcin MsgBox() para desplegar un mensaje de error (error crtico) en una ventana de mensajes, con los botones Yes y No. El botn No se especifica como el botn estndar (el activo, o el que tiene el enfoque). El valor retornado por la funcin depender del botn escogido por el usuario. Este ejemplo asume, igualmente, que el archivo DEMO.HLP es un archivo valido de ayuda, que contiene el tpico con el nmero contextual igual a 1000.

Dim Msg, Style, Title, Help, Ctxt, Response, MyString Msg = "Desea continuar ?"' Define el mensaje. ' Define botones: Style = vbYesNo + vbCritical + vbMsgBoxHelpButton+ vbDefaultButton2 Title = "MsgBox Demostracin" ' Define ttulo. Help = "DEMO.HLP" ' Define archivo de ayuda. Ctxt = 1000 ' Define tpico. Response = MsgBox(Msg, Style, Title, Help, Ctxt) ' Muestra el mensaje

If Response = vbYesThen ' Si el usuario escoge Yes. MyString = "Yes" ' Ejecuta alguna accin. Else ' El usuario escoge No. MyString = "No" ' Ejecuta alguna accin. EndIf

En el Proyecto 1 se emple la funcin MsgBox() con el otro formato, explicitando los mensajes directamente en los argumentos, como se muestra a continuacin.

Private Sub Command1_Click() Dim Ctr_Data as Boolean , MM$ Ctr_Data = IsNumeric(Text1) And IsNumeric(Text2) If(NotCtr_Data)Then Msgbox "DATOS NO VLIDOS", 16, "** ERROR EN DATOS **" Text1.SetFocus EXIT SUB Else A = Val(Text1) : B = Val(Text2) Command1.Enabled = False : Command2.Enabled = True

Command3.Enabled = True : MM$ = "... DATOS LEDOS : " &Chr(13) MM$ = MM$ & "A = " &Str(A) &Chr(13) & "B = " &Str(B) Msgbox MM$, 48, "** LECTURA O.K. **" Frame1.Visible = False End If End Sub

En ambos casos, la ventana de mensajes es del tipo de botn OK (Aceptar). Obsrvese la diferencia de los conos. Es de notar el mensaje multilnea, que aparece en la segunda ventana, formado al concatenar varios textos, intercalando convenientemente la funcin Chr(13). En ambos casos, tambin, el botn estndar es el que aparece (tiene un doble permetro, denotando que es el activo).

Tambin en el Proyecto 1 se emple la funcin MsgBox(), con botones tipo S/No, asignando el valor retornado a una variable entera, como se ilustra a continuacin:

Private Sub Command4_Click() Dim MM$, TT$, TeclaAs Byte MM$ = "... QUIERE SALIR?" : TT$ = "** SALIDA **" Tecla = MsgBox(MM$, 4 + 32, TT$) If (Tecla = 6) Then Unload Form1

End Sub

Obsrvese que esta ventana de mensajes es del tipo S/No, con cono de interrogacin, obtenidos con el parmetro 4 + 32. Si el usuario hace click en el botn S, entonces la funcin MsgBox() devuelve el valor de 6, en cuyo caso se qtuita de memoria interna el formulario Form1, regresndose a la interfaz de diseo. El botn estndar es el primero (S) porque no se ha especificado ninguno como estndar.

You might also like