ongotfocus dúvida

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Paulao
Usuário Nível 3
Usuário Nível 3
Mensagens: 186
Registrado em: 09 Jul 2004 11:03
Localização: Franca
Contato:

ongotfocus dúvida

Mensagem por Paulao »

Bao tarde amigos, tenho uma duvida do ONGOTFOCUS.

Tenho o seguinte TEXTBOX

Código: Selecionar todos


      DEFINE TEXTBOX oGet_cnfj_cai
         ROW	170
	 COL	720
	 WIDTH	147
         FONTNAME "Tahoma"
         FONTSIZE 10
         TOOLTIP "Digite o CNPJ/CPF DO PARCEIRO"
         UPPERCASE  .T.
         MAXLENGTH 14
         VALUE x_cnfj_cai
         ON GOTFOCUS poe_cnpj(form_cai.oGet_parc_cai.value)     
      END TEXTBOX
Minha intenção era quando o textbox entrasse em foco ele chamava uma funcão para buscar o CPF/CNPJ do cliente

Código: Selecionar todos

Func poe_cnpj(par1)
cPesq := par1
dbselectarea('parnomad')
ordsetfocus('nome_par')
dbseek(cPesq)
if eof()
    Msgbox("Cliente não encontrado")
else
    msgbox("Cliente encontrado")
endi
form_cai.oGet_hist_cai.setfocus
return(nil)
O problema é que quando a função é chamada ela volta o foco para o textbox novamente que chama a funcão novamente formando m loop infinito, tentei mudar o foco para outro textbox após o textbox que chama a função mas não funciona assim, o foco volta para o textbox que chama a função. o que da pra fazer neste caso
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

ongotfocus dúvida

Mensagem por rubens »

Só um chute
Coloque a função no On init do Form ou então depois do end do define window..

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

ongotfocus dúvida

Mensagem por Adalberto »

paulao, buenos dias

Al final de la función de búsqueda en RETURN(NIL) debe ser RETURN .T.

Que te vaya bien.

Saludos, Adalberto.
Avatar do usuário
carlaoonline
Usuário Nível 3
Usuário Nível 3
Mensagens: 190
Registrado em: 24 Ago 2014 22:38
Localização: Porto Alegre-RS

ongotfocus dúvida

Mensagem por carlaoonline »

Boa tarde!

ON GOTFOCUS

MUITO CUIDADO COM ESSE PARÂMETRO...

Se usar:

Código: Selecionar todos

ON GOTFOCUS  dbSelectArea("CLIENTES") 
e lá pela tantas, com outro arquivo aberto e selecionado em outra área qualquer... tudo pode mudar após um simples MsgBox.

A qualquer comando de MsgBox, wapi_MessageBoxTimeout, etc... ele dá um SELECT no CLIENTES e esquece o arquivo que vc estava até antes da sua mensagem ser mostrada. (No caso de estar no mesmo Form)

Ai voce ACHA que esta navegando em um arquivo e dê-lhe a bagunçar outro sem saber, pois após o MsgBox o foco foi para o arquivo CLIENTES.


No meu caso, depois de apanhar um pouco e xingar o Harbour, entendi o que estava acontecendo aqui...

daí resolvi assim...




nAreaAtual:=Select()
MSGBOX("Arquivo em uso. bla bla bla...") // Aqui, ele automaticamente um Select no CLIENTES...
Select(nAreaAtual)


Depois criei uma Funcao chamada Alerta, que faz esse Re-select ao sair da função.
Responder