Página 1 de 2
Comando VALID não está funcionando
Enviado: 01 Ago 2012 11:37
por bencz
Bom, estou tentando fazer, com q na hora q o usuario chegar no textbox de senha, ele digitar a senha, e teclar enter, ele apareça uma messabox qualquer...entao, para isso, usei o comando VALID, mas, ele nao está funcionando como pretendia, o código q eu estou utlizando está abaixo...
Código: Selecionar todos
#include "hwgui.ch"
function start()
INIT DIALOG oDlg TITLE "dsdsadsadsa" ;
AT 0,-170 SIZE 416,114 NOEXIT CLIPPER ;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU
@ 7,14 SAY oLabel1 CAPTION "Usuário:" SIZE 63,19
@ 18,44 SAY oLabel2 CAPTION "Senha:" SIZE 52,19
@ 64,11 GET oEdit1 VAR Usuario SIZE 343,22 MAXLENGTH 30
@ 64,40 GET oEdit2 VAR mTSenha SIZE 344,22 ;
VALID {|| hello()}
@ 215,68 BUTTON oButton1 CAPTION "Ok" SIZE 90,26 ;
STYLE WS_TABSTOP ;
ON CLICK {|| oDlg:Close() }
@ 312,68 BUTTON oButton2 CAPTION "Sair" SIZE 90,26 ;
STYLE WS_TABSTOP ;
ON CLICK {|| Sair() }
ACTIVATE DIALOG oDlg
return nil
function hello()
MessageBox(, "ola")
return nil
Grato pela ajuda
Comando VALID não está funcionando
Enviado: 01 Ago 2012 11:49
por sygecom
Todo VALID ou WHEN aguarda um retorno .T. ou .F. isso é desde o CLIPPER, e sua função HELLO está retornando NIL, altere para retornar .T. que vai funcionar.
Comando VALID não está funcionando
Enviado: 01 Ago 2012 11:52
por esbasso
MESSAGEBOX ??
NA HWGUI USE MSGINFO, MSGYESNO
MsgInfo( "hello")
Msginfo( cMessage [, cTitle] )
Msgstop( cMessage [, cTitle] )
Msgokcancel( cMessage [, cTitle] )
Msgyesno( cMessage [, cTitle] )
MsgBeep( [ nSound ] )
MsgExclamation( cMessage, [, cTitle ] )
MsgRetryCancel( cMessage, [, cTitle ] )
Comando VALID não está funcionando
Enviado: 01 Ago 2012 12:40
por bencz
Certo, mas estou querendo fazer com q quando eu aperte enter, ele feche o dialog:
....VALID {|| oDlg:Close() }
oDlg:CLose(), isso funcionaria com isso ?
Comando VALID não está funcionando
Enviado: 01 Ago 2012 12:44
por alaminojunior
Funcionaria, mas lembrando a orientação do Leonardo: as cláusulas VALID e WHEN sempre aguardam um .t. ou .f.
Comando VALID não está funcionando
Enviado: 01 Ago 2012 12:53
por esbasso
no caso especifico do GET EDIT O VALID e o WHEN tem por default o .T. caso não seja colocado
Comando VALID não está funcionando
Enviado: 01 Ago 2012 13:09
por bencz
Bom, mas, pq nao esta funcionando, estou usando a ultima revisão do SVN o.O
o SET KEY tb, parou de funcionar ;x
Comando VALID não está funcionando
Enviado: 01 Ago 2012 13:25
por esbasso
Tudo funciona
revise teu codigo e tuas libs
Comando VALID não está funcionando
Enviado: 01 Ago 2012 14:48
por bencz
Bom, talvez, nao esteja funcionando, pois, tirei da compilação da LIB, o activeX, pois, estava dando muitos erros na hora de compilar com o xHB....
na realidade... ele da erro no htmlcore.obj, e fala que nao pode dar build
Comando VALID não está funcionando
Enviado: 01 Ago 2012 14:53
por bencz
Tem como você passar a sua .lib ?
Comando VALID não está funcionando
Enviado: 01 Ago 2012 15:09
por esbasso
é própria do SVN
Comando VALID não está funcionando
Enviado: 01 Ago 2012 15:27
por bencz
Como fazer p/ funcionar o atalho usando o SET KEY, qnd estou com o cursor dentro de um RichEdit ?
Qnd estou com o cursor, dentro dos GETs, o atalho funciona, caso contrario, ou seja, dentro do RichEdit, o atalho nao funciona, como posso fazer ?
O código que usei para testar foi esse:
Código: Selecionar todos
#include "hwgui.ch"
FUNCTION Start
LOCAL vEdit1 := "", vEdit2 := "", vRichedit1
LOCAL oEdit1, oEdit2, oRichedit1
INIT DIALOG oDlg TITLE "Form1" ;
AT 0,-130 SIZE 741,403 NOEXIT ;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER
SET KEY 0,VK_F12 OF oDlg TO MsgInfo("dnsak")
@ 73,88 GET oEdit1 VAR vEdit1 SIZE 80,22
@ 86,173 GET oEdit2 VAR vEdit2 SIZE 80,22
@ 292,92 RICHEDIT oRichedit1 TEXT vRichedit1 SIZE 190,120 ;
STYLE ES_MULTILINE +WS_BORDER+ES_AUTOVSCROLL +WS_VSCROLL
ACTIVATE DIALOG oDlg
RETURN oDlg:lresult
Comando VALID não está funcionando
Enviado: 01 Ago 2012 15:58
por esbasso
PARA O richedit faça assim
Código: Selecionar todos
@ 292,92 RICHEDIT oRichedit1 TEXT vRichedit1 SIZE 190,120 ;
STYLE ES_MULTILINE +WS_BORDER+ES_AUTOVSCROLL +WS_VSCROLL;
ON OTHERMESSAGES {|This,msg,wParam,lParam| Processateclas( this, msg,wParam, lParam ) }
Código: Selecionar todos
FUNCTION Processateclas( this, msg,wParam, lParam )
IF msg = WM_KEYDOWN //quando pressionado
if wParam = VM_ESCAPE // AQUI PROCESSA SUAS TECLAS
// SEU CODIGO
ENDIF
ELSEIFmsg = WM_KEYUP // quando solta a tecla
//... codigo
ENDIF
RETURN -1 // IMPORTANTE AQUI, SEMPRE TEM DE TER RETURN -1
Comando VALID não está funcionando
Enviado: 01 Ago 2012 17:55
por bencz
Feito (:
Muito obrigado (:
Ainda nao foi implementada a função, para ver se oque foi selecionado no RichEdit, já está com bold... dai, caso eu selecione, e clique em bold, ele volte para o normal....
Comando VALID não está funcionando
Enviado: 03 Ago 2012 14:59
por bencz
Bom, voltando ao assunto do tópico né :X
fiz o seguinte exemplo, no xdesigne...
Código: Selecionar todos
#include "hwgui.ch"
STATIC Thisform
FUNCTION as( p1, p2, p3, p4 )
RETURN _as( p1, p2 ,p3 ,p4)
FUNCTION _as
LOCAL vEdit1 := "", vEdit2 := ""
LOCAL oLabel1, oLabel2, oEdit1, oEdit2
INIT DIALOG oDlg TITLE "Form1" ;
AT 0,-130 SIZE 200,134 NOEXIT CLIPPER ;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER
Thisform := oDlg
@ 18,16 SAY oLabel1 CAPTION "LaLa:" SIZE 100,19
@ 69,13 GET oEdit1 VAR vEdit1 SIZE 60,22 PICTURE "99999" VALID {|| MsgInfo("Ola mundo") }
@ 18,46 SAY oLabel2 CAPTION "LARE:" SIZE 100,19
@ 69,43 GET oEdit2 VAR vEdit2 SIZE 60,22 PICTURE "99999" VALID {|| MsgInfo("Ola mundo") }
ACTIVATE DIALOG oDlg
RETURN oDlg:lresult
E qnd eu termino de digitar os numeros no Edit, ele aparentemente nao valida... simplesmente, ele passa p/ o proximo Edit... tentei apertando enter, tab.... e nada ;x
Algum erro, por minha parte ?