| 
                    
 This is the legacy 4D documentation web site. Documentations are progressively being moved to developer.4d.com  | 
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
                 
                
    
    
                 | 
                
					
                    
                         
    4D v20.6
 
MESSAGE 
                                
                                
        
 | 
                |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MESSAGE ( message ) | ||||||||
| Parameter | Type | Description | ||||||
| message | String | 
             
         | 
        Message to display | |||||
The MESSAGE command is usually used to inform the user of some activity. It displays message on the screen in a special message window that opens and closes each time you call MESSAGE, unless you work with a window you previously opened using Open window (see the following details). The message is temporary and is erased as soon as a form is displayed or the method stops executing. If another MESSAGE is executed, the old message is erased.
If a window is opened with Open window, all subsequent calls to MESSAGE display the messages in that window. The window behaves like a terminal:
Note: MESSAGE is compatible with the Open form window command; however, in this context the second * parameter of Open form window, which saves the window's size and position, is not supported.
The following example processes a selection of records and calls MESSAGE to inform the user about the progress of the operation:
 For($vlRecord;1;Records in selection([anyTable]))
    MESSAGE("Processing record #"+String($vlRecord))
  ` Do Something with the record
    NEXT RECORD([anyTable])
 End forThe following window appears and disappears at each MESSAGE call:

In order to avoid this "blinking" window, you can display the messages in a window opened using Open window, as in this example:
 Open window(50;50;500;250;5;"Operation in Progress")
 For($vlRecord;1;Records in selection([anyTable]))
    MESSAGE("Processing record #"+String($vlRecord))
  ` Do Something with the record
    NEXT RECORD([anyTable])
 End for
 CLOSE WINDOWThis provides the following result (shown here on Windows):

Adding a carriage return makes a better presentation:
 Open window(50;50;500;250;5;"Operation in Progress")
 For($vlRecord;1;Records in selection([anyTable]))
    MESSAGE("Processing record #"+String($vlRecord)+Char(Carriage return))
  ` Do Something with the record
    NEXT RECORD([anyTable])
 End for
 CLOSE WINDOWThis provides the following result (shown here on Windows):

Using GOTO XY and writing some additional lines:
 Open window(50;50;500;250;5;"Operation in Progress")
 $vlNbRecords:=Records in selection([anyTable])
 $vhStartTime:=Current time
 For($vlRecord;1;$vlNbRecords)
    GOTO XY(5;2)
    MESSAGE("Processing record #"+String($vlRecord)+Char(Carriage return))
  ` Do Something with the record
    NEXT RECORD([anyTable])
    GOTO XY(5;5)
    $vlRemaining:=(($vlNbRecords/$vlRecord)-1)*(Current time-$vhStartTime)
    MESSAGE("Estimated remaining time: "+Time string($vlRemaining))
 End for
 CLOSE WINDOWThis provides the following result (shown here on Windows):

	Product:  4D
	Theme:  Messages
	Number:  
        88
        
        
        
	
	Modified:  4D 2004 
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	4D Language Reference ( 4D v20)
	
	
	4D Language Reference ( 4D v20.1)
	
	
	
	4D Language Reference ( 4D v20.2)
	
	4D Language Reference ( 4D v20.3)
	
	4D Language Reference ( 4D v20.4)
	
	
	4D Language Reference ( 4D v20.5)
	4D Language Reference ( 4D v20.6)
	
	
	
Add a comment