Página 1 de 1
Mensagem de Alerta
Enviado: 11 Dez 2013 20:20
por Cavalo Marinho
Bom pessoal, procurei algo a respeito e nao encontrei.
é o seguinte: Preciso executar uma determinada rotina(funcão) e quero mostrar uma mensagem na tela como uma msginfo só que sem botão sem nada somente a mensagem e a rotina que chamou continuar sendo executada e no final da rotina destruir a telinha de mensagem.
exemplo: de um determinado ponto do sistema eu chamo uma funcao A ou uma Funcao B ou C estas funcoes deverá chamar uma função que gere uma telinha com informação tipo "AGUARDE O PROCESSAMENTO" , mas sem interromper as funcoes que a chamaram, apos o processamento destas funcoes deverá destruir a tela de informação.
Desculpe se nao fui bem claro.
Mensagem de Alerta
Enviado: 11 Dez 2013 21:42
por Toledo
Amigo, veja os seguintes exemplos na pasta \SAMPLES da sua MiniGui:
MiniGui Extended:
\SAMPLES\BASIC\WAIT_WINDOW
HMG Oficial:
\SAMPLES\Controls\WaitWindow\WAIT.WINDOW.1
Abraços,
Mensagem de Alerta
Enviado: 11 Dez 2013 22:09
por Cavalo Marinho
Obrigado Toledo, vou olhar o exemplo pra ver se encaixa no que estou querendo.
Mensagem de Alerta
Enviado: 12 Dez 2013 08:56
por Poka
Olá
Veja se esta rotina serve
Código: Selecionar todos
# INCLUDE "MINIGUI.CH"
# INCLUDE "I_COLOR.CH"
# INCLUDE "ERROR.CH"
# INCLUDE "I_KEYBD.CH"
///////////////////
FUNCT MAIN
PUBL W_LARGURA:=GETDESKTOPWIDTH()
PUBL W_ALTURA:=GETDESKTOPHEIGHT()
DEFINE WINDOW PRINCIPAL;
AT 0,0;
WIDTH w_largura;
HEIGHT W_ALTURA;
ICON "";
MAIN ;
ON INIT MSG(0) ;
TITLE "Sistema";
NOMAXIMIZE;
FONT "ARIAL" SIZE 10;
BACKCOLOR WHITE
*-------defincoes dos botoes da janela princiapl
end window
// tela de aviso de processamento
DEFINE WINDOW MENSAGEM ;
AT W_ALTURA/4,W_LARGURA/8 ;
WIDTH W_LARGURA-200;
HEIGHT W_ALTURA/2;
TITLE '';
TOPMOST NOCAPTION;
BACKCOLOR BLUE
@ MENSAGEM.HEIGHT/2,0 LABEL LABEL_MENSAGEM ;
WIDTH MENSAGEM.WIDTH HEIGHT 40 ;
VALUE "" ;
FONT 'ARIAL' SIZE 18;
BACKCOLOR BLUE FONTCOLOR WHITE;
CENTERALIGN
END WINDOW
*---------------------
ACTIVATE WINDOW PRINCIPAL
ACTIVATE WINDOW MENSAGEM
RETU NIL
*----------------
/////////////////////
FUNC MSG(X,_XMENSAGEM)
/*
x= 1 mostra mensagem
0 esconde mensagem
exemplo
chame essa rotina antes do procedimento
msg(1) mostra mensagem padrao
msg(1," atualizando arquivos")
apos o porocedimento
msg(0) esconde tela
*/
DECLARE WINDOW MENSAGEM
IF EMPTY(_XMENSAGEM_)
MENSAGEM.LABEL_MENSAGEM.VALUE:="Aguarde...Processando"
ELSE
MENSAGEM.LABEL_MENSAGEM.VALUE:=LOWER(_XMENSAGEM_ )
ENDIF
IF X=1
MENSAGEM.SHOW
ELSE
MENSAGEM.HIDE
ENDIF
RETU NIL
*---------------------------
Poka
Mensagem de Alerta
Enviado: 06 Mai 2020 21:46
por Vlademiro
Olá, pessoal
Toledo escreveu:Amigo, veja os seguintes exemplos na pasta \SAMPLES da sua MiniGui:
MiniGui Extended:
\SAMPLES\BASIC\WAIT_WINDOW
HMG Oficial:
\SAMPLES\Controls\WaitWindow\WAIT.WINDOW.1
Abraços,
Executei esse exemplo e funcionou perfeitamente, mas quando a aplicação tem mais de uma janela fica esquisito, porque a janela MAIN sempre fica aparecendo.
Código: Selecionar todos
WAIT WINDOW "Buscando CEP (Aguarde)..." NOWAIT
//MEU PROCESSAMENTO
WAIT CLEAR
Fui ler a documentação e lá tem o seguinte :
"This command must be used only after main window was activated."
Tem como evitar que a janela MAIN APAREÇA ?
Tentei usar o SetFocus na minha janela de formulário para evitar que a Main sobreponha, mas não deu certo.
Uso HMG 3.4.4
Não sei se fui claro, mas é um efeito esquisito mesmo. Eu tenho a Main, chamo a janela do meu formulário, consulto o CEP, e quando boto a mensagem de "aguarde", a janela Main aparece sobrepondo tudo e logo após a WAIT CLEAR o meu formulário aparece de novo.
Obrigado
Mensagem de Alerta
Enviado: 07 Mai 2020 00:48
por JoséQuintas
Pra que complicar tanto?
Tem status bar?
Coloca lá um pedaço com numeração, indicando tarefas de background.

- bola.jpg (11.61 KiB) Exibido 1550 vezes
Mensagem de Alerta
Enviado: 07 Mai 2020 19:10
por Vlademiro
Vou seguir o seu conselho. O status bar é o controle indicado para esse tipo de tarefa. Acho que, nesse caso, as aplicações em modo texto são melhores. Uma boa janela de mensagem (a moda antiga, tipo PopOn/PopOff) é melhor para o operador ver o aviso. Um status bar é muito discreto, mas é o que vou usar agora. Se houver reclamação eu vejo outra solução. O colega Poka postou uns códigos que eu cheguei a testar sem sucesso, mas o problema está comigo e não com o código dele. Em todo caso eu vou ficar com esse status bar mesmo (pelo menos por enquanto)
Obrigado a todos
Mensagem de Alerta
Enviado: 07 Mai 2020 19:44
por JoséQuintas
Se for o caso, coloque em vermelho quando tem tarefa, algo que fique em destaque.