Criar uma função Alert()

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Criar uma função Alert()

Mensagem por rubens »

Bom dia...

Se já tiver isso no Fórum me desculpem, não sabia nem como pesquisar isso...
Eu vi que é fácil usar a função wapi_messagebox(), daí queria que toda vez que eu chamasse no programa o alert() ele executasse a minha função e não a função nativa alert()
Tem como fazer isso? Daí não preciso mudar dentro dos prgs a chamada para a nova função...
Até pesquisei nos prgs todos os alerts, mas se fosse só alert() beleza trocava facinho mas tem os argumentos enviados junto com a função, daí não vi como alterar tudo de uma vez...

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Criar uma função Alert()

Mensagem por Toledo »

Rubens, você pode usar a directive #command no início do PRG, por exemplo:

Código: Selecionar todos

#command Alert( <xMessage>, [<aOptions>], [<cColor>], [<nDelay>] ) => SuaAlert(<xMessage>, <aOptions>, <cColor>, <nDelay>)
Obs.: pode colocar o comando acima dentro de algum CH que você chama no início de cada PRG.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Criar uma função Alert()

Mensagem por fladimir »

Aproveitando o gancho...

#command e #translate tem o mesmo efeito????
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Criar uma função Alert()

Mensagem por Toledo »

Acho que a única diferença entre estas duas directivas é que na #translate você pode alterar parte de uma declaração, já o #command tem que passar a declaração completa, como fiz no exemplo da minha mensagem anterior.

Por exemplo:

Código: Selecionar todos

#command Left( <cString>, <nCount> ) => SuaLeft( <cString>, <nCount> )

Código: Selecionar todos

#translate LEFT => RIGHT
Aqui todas as funções LEFT serão mudadas para RIGHT, independente dos parâmetros que a função LEFT tenha.

Obs.: mas a #translate também pode ser usada em uma declaração completa:

Código: Selecionar todos

#translate Left( <cString>, <nCount> ) => SuaLeft( <cString>, <nCount> )
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Criar uma função Alert()

Mensagem por rubens »

Bom dia...

Toledo o que tô fazendo de errado?

Código: Selecionar todos

#include "hbwin.ch"
#Command Alert( <xMessage>, [<aOptions>], [<cColor>], [<nDelay>] ) => Pergunta(<xMessage>, [<aOptions>],[<cColor>], [<nDelay>])		

REQUEST HB_GT_WVT_DEFAULT

FUNCTION MAIN
	ALERT(' TESTE ')
RETURN NIL 

********************************************************************************
FUNCTION PERGUNTA(cTexto)
wapi_MessageBox( wapi_GetActiveWindow(), cTexto, "Confirmacao" )
RETURN NIL
Continua aparecendo a telinha vermelha do Alert()...
Tentei com o Translate também e o alert continua aparecendo...

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Criar uma função Alert()

Mensagem por Jairo Maia »

Olá Rubens,

É que o #command não está permutando a sequência porque não existe essa sequência em seus fontes. Também tenha em mente, que tanto o #define como o #command são Case Sensitives.

Pelo seu exemplo, troque o #command pelo #translate que não é Case Sensitive e teste dessa forma:

Código: Selecionar todos

#translate Alert => Pergunta
Veja se ajuda.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Criar uma função Alert()

Mensagem por Toledo »

Amigos, o problema está no número de parâmetros passado na função ALERT(), se for passar apenas 1 parâmetro (Texto), então faça assim:

Código: Selecionar todos

#Command Alert( <xMessage> ) => Pergunta(<xMessage>)
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Criar uma função Alert()

Mensagem por rubens »

Agora sim Toledo... funcionou...

Jairo, eu já tinha percebido a questão do case sensitive, mas mesmo corrigindo não funcionou...

Agora é verificar os parâmetros que virão porque as vezes é só um ok, as vezes vem com opção sim-nao...

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Responder