| 4D v18MESSAGE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 MESSAGE 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MESSAGE ( mensagem ) | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| mensagem | String |   | Mensagem a exibir | |||||
O comando MESSAGE geralmente se utiliza para informar ao usuário sobre alguma atividade. Mostra mensagem na tela em uma janela de mensagem especial que se abre e fecha cada vez que chamar a MESSAGE, a menos que trabalhe com uma janela que abriu previamente utilizando Open window (ver detalhes abaixo). A mensagem é temporária e é apagada assim que um formulário for exibido ou o método parar de executar. Se outra MESSAGE for executada, a mensagem antiga é apagada.
Se abrir uma janela com Open window, todas as chamadas a MESSAGE mostram as mensagens nessa janela. A janela se comporta como um terminal:
Nota: MESSAGE é compatível com o comando Open form window; entretanto, no contexto do segundo parâmetro * de Open form window, que salva o tamanho e posição da janela, não é suportado
O exemplo a seguir processa uma seleção de registros e chama MESSAGE para informar ao usuário sobre o progresso da operação:
 For($vlRegistro;1;Records in selection([todaTabela]))
    MESSAGE("Processo do registro #"+String($vlRegistro))
  ` Fazer algo com o registro
    NEXT RECORD([todaTabela])
 End forA janela a seguir aparece e desaparece cada vez que se chama MESSAGE:

Com o objetivo de evitar a janela "piscante", pode mostrar as mensagens em uma janela aberta utilizando Open window, como em este exemplo:
 Open window(50;50;500;250;5;"Operação em progresso")
 For($vlRegistro;1;Records in selection([todaTabela]))
    MESSAGE("Processando registro #"+String($vlRegistro))
  ` Fazer algo com o registro
    NEXT RECORD([todaTabela])
 End for
 CLOSE WINDOWO resultado é o seguinte (em Windows):

Adicionar um retorno de carro melhora a presentação:
 Open window(50;50;500;250;5;"Operação em progresso")
 For($vlRegistro;1;Records in selection([todaTabela]))
    MESSAGE("Processando registro #"+String($vlRegistro)+Char(Carriage return))
  ` Fazer algo com o registro
    NEXT RECORD([todaTabela])
 End for
 CLOSE WINDOWEste é o resultado (em Windows):

Utilizando GOTO XY e escrevendo algumas linhas adicionais:
 Open window(50;50;500;250;5;"Operação em progresso")
 $vlNbRegistros:=Records in selection([todaTabela])
 $vhStartTime:=Current time
 For($vlRegistro;1;$vlNbRegistros)
    GOTO XY(5;2)
    MESSAGE("Processando registro #"+String($vlRegistro)+Char(Carriage return))
  ` Fazer algo com o registro
    NEXT RECORD([todaTabela])
    GOTO XY(5;5)
    $vlResto:=(($vlNbRegistros/$vlRegistro)-1)*(Current time-$vhHoraInicio)
    MESSAGE("Tempo restante estimado: "+Time string($vlResto))
 End for
 CLOSE WINDOWO resultado é o seguinte (em Windows):

	Produto: 4D
	Tema: Mensagens
	Número 
        88
        
        
        
	
	Modificado: 4D 2004 
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	Manual de linguagem 4D ( 4D v18)
	
	
	
	
	
 Adicionar um comentário
Adicionar um comentário