Página 2 de 2

Enviado: 22 Out 2007 10:51
por Itamar M. Lins Jr.
Daniel_halon escreveu:Amigo Itamar,

Quando liga o cliente (tele-entrega) a tela fica esperando para ser digitado o numero do telefone, com a função Check_cli() no get oFone e a variavel a_dados[1,1], quando localiza o cliente pega os dados do nome, endereço, bairro e ramal e o cursor tem que ficar com o foco no endereço, para poder alterar se for o caso, porem
NÃO poderia mais alterar o telefone, com os exemplos que colocaste tentei colocar oFone:DISABLE mas não sei bem aonde, na função Check_cli da erro.

abraço, Dniel..........
Ola!
Rapaz, na verdade esse seu código tem funções que não se usa em hwgui.

Código: Selecionar todos

Lastkey()
setkey()
do while
save screen
etc
Estão funcionando esses códigos na hwgui?

Use GetKeyState() = lastkey()

Ex.

If GetKeyState(VK_RETURN) < 0 //Se teclou enter no get...

If GetKeyState(VK_ESCAPE) < 0 //Se teclou esc no get...

E qual é o erro da hwgui?

Eu tenho um sistema para pizzarias e restaurantes, já migrei muitos modulos, agora vou fazer a parte de delivery, postarei aqui o código.

Seu programa ainda tem muitas coisas da forma de programar do clipper.
Em ambiente visual desenhamos a tela e nela colocamos tudo, depois é que vamos desligando, ativando...
Voce começa uma dialog, no meio da dialog chama outra... a chamada da dialog fazemos no On INIT, On LostFocus, On Get Focus...
Com hwgui trabalhamos com componentes, é preciso definilos começar a dialog e termina-la ex:

Código: Selecionar todos

Local oDlg
Init Dialog oDlg ... // definimos fontes, e o que é para ocorrer ex. On Init, etc...

 // Aqui no meio não se coloca função chamando outra dialog...
 // Tambem não usuamos save scree, lastkey, while etc...
 // Se eu quero que antes de abrir essa dialog ocorra um outro (evento), então eu coloco lá em cima: On Init {|| MinhaFuncaoAoIniciar()}.

Activate Dialog oDlg
Saudações
Itamar M. Lins Jr.

Enviado: 22 Out 2007 11:20
por Daniel_halon
Valeu Itamar,

ainda tenho muito a aprender, com certeza ainda vou cometer muitos erros, mas e deles que aprendemos (tambem copiando o que outros fazem), voy aguardar até que postes teus exemplos que serão de muita utilidade.
Com referência aos gets, como posso desabilitar o primeiro get apos ser digitado o numero do telefone?

Obrigado pela força
Daniel...

Enviado: 22 Out 2007 12:31
por Itamar M. Lins Jr.
Daniel_halon escreveu:Valeu Itamar,

ainda tenho muito a aprender, com certeza ainda vou cometer muitos erros, mas e deles que aprendemos (tambem copiando o que outros fazem), voy aguardar até que postes teus exemplos que serão de muita utilidade.
Com referência aos gets, como posso desabilitar o primeiro get apos ser digitado o numero do telefone?

Obrigado pela força
Daniel...

Código: Selecionar todos


Function Main
Local oDlg
Private vVar01,vVar02
Private oVar02,oVar01

Init Dialog oDlg...


vVar01:=len(spac(Telefone))
vVar02:=len(spac(NOME))

@ 10,10 get oVar01 VAR vVar01 picture '@r 99 999-9999´ size 100,20 Valid {||Funcao() }
@ 10,30 get oVar02 VAR vVar02 picture rep(´X´,50) size 200,20

oDlg:Activate()

Function Funcao
if getkeystat... // se o usuario teclou enter, ou usou o botão

oGet02:Disable()
If dbseek...
  vGet02:=nome
  oGet02:Refresh()
endif

//Podemos tambem testar se o foco esta em qualquer objeto

return .t.

Bom vc pode criar tambem, uma dialog só para digitar o telefone com dois botões:
Confirma, Cancela.
A pessoa digita o numero do telefone e tecla enter na dialog só com telefone.

Ps. Ainda não falou qual é o erro...

Saudações
Itamar M. Lins Jr.

Enviado: 22 Out 2007 20:25
por Daniel_halon
Acredito que o erro seja este:

Código: Selecionar todos


    @ 93,085 Get oFone Var a_dados[1,1] size 70,20 Font oFontsay Picture '9999-  
    9999' STYLE ES_AUTOHSCROLL COLOR AMARELO BACKCOLOR AZUL  Valid {|| 
    check_cliente(lComple, p_Comple, a_dados), oFone:DISABLE } 

Estou alterando os fontes conforme o exemplo que postaste, quando esteja terminado, vou colocar aqui para que des uma olhada nele.

Obg.