Tela para processamento – MsAguarde()
Monta tela de processamento para múltiplas mensagens, na teoria o botão cancelar que aparece deveria funcionar a qualquer momento, mas só na função User principal.
A sintaxe é simples:
1 |
MSAguarde( bAcao, cTitulo ,cMensagem,lAbortar) |
Parâmetros:
1 2 3 4 5 |
//onde: bAcao = Bloco de código que será executado cTitulo = Titulo da tela de processamento cMensagem = Mensagem que será exibida durante o processamento lAborta = .T. habilita o botão Cancelar, .F. desabilita o botão (opção padrão) |
Exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
User Function Processamento() MsAguarde({|lFim| Processa(@lFim)},"Processamento","Aguarde a finalização do processamento...") Return Static Function Processa(lFim) For i := 1 to 1000 If lFim MsgInfo("Cancelado!","Fim") Exit Endif MsProcTxt("Lendo "+Alltrim(str(i))) Next Return |
Lembrando que não é obrigatório informar o titulo, a mensagem e o parametro para habilitar o cancelamento
Particulamente, prefiro usar o Processa() e o MsNewProcess(), mostrar a barra de progresso dá a impressão que a rotina está realmente sendo executada.
Espero que tenha sido útil a dica…