Página 1 de 1
Criar uma função Alert()
Enviado: 23 Jul 2016 11:48
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
Criar uma função Alert()
Enviado: 23 Jul 2016 12:09
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,
Criar uma função Alert()
Enviado: 23 Jul 2016 19:56
por fladimir
Aproveitando o gancho...
#command e #translate tem o mesmo efeito????
Criar uma função Alert()
Enviado: 24 Jul 2016 08:49
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> )
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,
Criar uma função Alert()
Enviado: 26 Jul 2016 09:39
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
Criar uma função Alert()
Enviado: 26 Jul 2016 11:35
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:
Veja se ajuda.
Criar uma função Alert()
Enviado: 26 Jul 2016 12:22
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:
Abraços,
Criar uma função Alert()
Enviado: 26 Jul 2016 14:43
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