MESSAGEBOX( ) (Función)

Muestra un cuadro de diálogo definido por el usuario.

MESSAGEBOX(eMessageText [, cTitleBarText][, nDialogBoxType ][, nTimeout])

Valores devueltos

Numeric

Parámetros

  • eMessageText
    Especifica el texto que aparece en el cuadro de diálogo. Utilice un retorno de carro (CHR(13)) en eMessageText para mover una parte del mensaje a la línea siguiente del cuadro de diálogo. El alto y el ancho del cuadro de diálogo aumentan lo que sea necesario para que quepa cMessageText.

    Puede utilizar cualquier función o tipo de datos válido de Visual FoxPro en vez de eMessageText. Si la función que utiliza produce un valor que no sea un carácter, Visual FoxPro utilizará automáticamente TRANSFORM para proporcionar el carácter equivalente, como en el siguiente ejemplo:

    MESSAGEBOX(DATE())
    
  • nDialogBoxType
    Especifica los botones y los iconos que aparecen en el cuadro de diálogo, el botón elegido inicialmente cuando se muestra y el comportamiento del mismo.

    En las tablas siguientes, los valores 0 a 5 del botón del cuadro de diálogo especifican los botones que aparecen en el mismo. Los valores de icono 16, 32, 48 y 64 especifican el icono que aparece en el cuadro de diálogo. Los valores predeterminados 0, 256 y 512 especifican qué botón del cuadro de diálogo es el botón predeterminado. El botón predeterminado se selecciona cuando aparece el cuadro de diálogo.

    Omitir nDialogBoxType es lo mismo que especificar un valor de 0 para nDialogBoxType.

    Valor Botones del cuadro de diálogo
    0 Sólo botón Aceptar.
    1 Botones Aceptar y Cancelar.
    2 Botones Anular, Reintentar e Ignorar.
    3 Botones Sí, No y Cancelar.
    4 Botones Sí y No.
    5 Botones Reintentar y Cancelar.
    Valor Icono
    16 Punto.
    32 Signo de interrogación.
    48 Signo de exclamación.
    64 Icono de información (i).
    Valor Botón predeterminado
    0 Primer botón.
    256 Segundo botón.
    512 Tercer botón.

    nDialogBoxType puede ser la suma de hasta tres valores, uno de cada una de las tablas anteriores. Por ejemplo, si nDialogBoxType es 290 (2+32+256), el cuadro de diálogo especificado tendrá las siguientes características:

    • Botones Anular, Reintentar e Ignorar.
    • El cuadro de mensaje muestra el icono del signo de interrogación.
    • El segundo botón, Reintentar, es el botón predeterminado.

    Hay disponible información adicional acerca de las constantes en el archivo FoxPro.h, que se encuentra en el directorio de inicio de Visual FoxPro. El uso de constantes definidas tales como MB_ABORTRETRYIGNORE + MB_ICONQUESTION + MB_DEFBUTTON2 puede ser más legible que 2 + 32 + 256.

  • cTitleBarText
    Especifica el texto que aparece en la barra de título del cuadro de diálogo. Si omite cTitleBarText, en la barra de título aparecerá el título "Microsoft Visual FoxPro".

  • nTimeout
    Especifica el número de milisegundos que Visual FoxPro mostrará cMessageText sin ninguna entrada desde el teclado o el mouse antes de borrar cMessageText. Es posible especificar cualquier tiempo de espera válido. Un valor menor de 1 no agotará el tiempo de espera hasta que se produzca la entrada del usuario (igual que si no se utiliza el parámetro nTimeout). Cuando se agote el tiempo de espera, MESSAGEBOX( ) devolverá –1.

Observaciones

El valor que devuelve MESSAGEBOX( ) indica qué botón del cuadro de diálogo se ha elegido. En los cuadros de diálogo con un botón Cancelar, al presionar la tecla ESC para salir del cuadro de diálogo se devolverá el mismo valor (2) que al elegir Cancelar.

Observe que la abreviatura más corta para esta función es MESSAGEB( ).

La tabla siguiente muestra los valores que devuelve MESSAGEBOX( ) para cada botón.

Valor devuelto Botón
1 Aceptar
2 Cancelar
3 Anular
4 Reintentar
5 Ignorar
6
7 No

La función MESSAGEBOX( ) utiliza parámetros inteligentes donde el tipo de parámetro dicta qué parámetro se está utilizando. El primer parámetro es requerido y siempre es cMessageText; sin embargo, el segundo parámetro, opcional, puede ser nDialogBoxType si el tipo es numérico o cTitleBarText si el tipo es de caracteres. Siempre se asume el parámetro nTimeout para el segundo parámetro numérico opcional que se pasa. Algunos ejemplos válidos son:

   MESSAGEBOX("HELLO","MyTitle",36,1)
   MESSAGEBOX("HELLO",36,"MyTitle",1)
   MESSAGEBOX("HELLO",36,1)
   MESSAGEBOX("HELLO",36,1,"MyTitle")

Ejemplo

El siguiente ejemplo muestra un cuadro de diálogo definido por el usuario. Como título del cuadro de diálogo definido por el usuario, se muestra el mensaje "Record not found. Would you like to search again?", y en la barra de título se muestra "My application".

El cuadro de diálogo definido por el usuario contiene los botones Yes y No, y el icono del signo de interrogación; el segundo botón (No) es la selección predeterminada. Cuando elija uno de los botones, la selección se mostrará en pantalla.

cMessageTitle = 'My Application'
cMessageText = 'Record not found. Would you like to search again?'
nDialogType = 4 + 32 + 256
*  4 = Yes and No buttons
*  32 = Question mark icon
*  256 = Second button is default

nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)

DO CASE
   CASE nAnswer = 6
      WAIT WINDOW 'You chose Yes'
   CASE nAnswer = 7
      WAIT WINDOW 'You chose No'
ENDCASE

Vea también

WAIT | DO CASE ... ENDCASE (Comando) | InputBox( ) (Función)