| 4D v13.4MESSAGE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v13.4
 MESSAGE 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MESSAGE ( mensaje ) | ||||||||
| Parámetro | Tipo | Descripción | ||||||
| mensaje | Cadena |   | Mensaje a mostrar | |||||
El comando MESSAGE generalmente se utiliza para informar al usuario sobre alguna actividad. Muestra mensaje en la pantalla en una ventana de mensaje especial que se abre y cierra cada vez que usted llama a MESSAGE, a menos que usted trabaje con una ventana que abrió previamente utilizando Open window (ver los siguientes detalles). El mensaje es temporal y se borra tan pronto como se muestre un formulario o se detenga la ejecución del método. Si se ejecuta otro comando MESSAGE, el mensaje anterior se borra.
Si se abre una ventana con Open window, todas las llamadas posteriores al comando MESSAGE muestran los mensajes en esa ventana. La ventana se comporta como un terminal:
El siguiente ejemplo procesa una selección de registros y llama MESSAGE para informar al usuario sobre el progreso de la operación:
 For($vlRegistro;1;Records in selection([todaTabla]))
    MESSAGE("Proceso del registro #"+String($vlRegistro))
  ` Hacer algo con el registro
    NEXT RECORD([todaTabla])
 End forLa siguiente ventana aparece y desaparece cada vez que se llama MESSAGE:

Con el fin de evitar la ventana "titilante", puede mostrar los mensajes en una ventana abierta utilizando Open window, como en este ejemplo:
 Open window(50;50;500;250;5;"Operación en progreso")
 For($vlRegistro;1;Records in selection([todaTabla]))
    MESSAGE("Procesando registro #"+String($vlRegistro))
  ` Hacer algo con el registro
    NEXT RECORD([todaTabla])
 End for
 CLOSE WINDOWEl resultado es el siguiente (en Windows):

Añadiendo un retorno de carro mejora la presentación:
 Open window(50;50;500;250;5;"Operación en progreso")
 For($vlRegistro;1;Records in selection([todaTabla]))
    MESSAGE("Procesando registro #"+String($vlRegistro)+Char(Carriage return))
  ` Hacer algo con el registro
    NEXT RECORD([todaTabla])
 End for
 CLOSE WINDOWEste es el resultado (en Windows):

Utilizando GOTO XY y escribiendo algunas líneas adicionales:
 Open window(50;50;500;250;5;"Operación en progreso")
 $vlNbRegistros:=Records in selection([todaTabla])
 $vhStartTime:=Current time
 For($vlRegistro;1;$vlNbRegistros)
    GOTO XY(5;2)
    MESSAGE("Procesando registro #"+String($vlRegistro)+Char(Carriage return))
  ` Hacer algo con el registro
    NEXT RECORD([todaTabla])
    GOTO XY(5;5)
    $vlResto:=(($vlNbRegistros/$vlRegistro)-1)*(Current time-$vhHoraInicio)
    MESSAGE("Tiempo restante estimado: "+Time string($vlResto))
 End for
 CLOSE WINDOWEl resultado es el siguiente (en Windows):

	Producto: 4D
	Tema: Mensajes
	Número 
        88
        
        
        
	
     Lista alfabética de los comandos
    Lista alfabética de los comandos
	Modificado: 4D 2004 
CLOSE WINDOW
ERASE WINDOW
GOTO XY
Open window