Pessoal,
Existem algum código exemplo para um campo edit de valor que a digitação seja da direita para esquerda, como existe no clipper?

Moderador: Moderadores
hazael escreveu:Não seria isso que está procurando?
#Include "hwgui.ch"
THREAD STATIC Thisform
FUNCTION MAIN()
LOCAL oDlg, oEdit1, oButtonex1
LOCAL nValor := ""
INIT DIALOG oDlg ;
TITLE "Form1" ;
AT 0, 0 ;
SIZE 250,117 ;
NOEXIT ;
STYLE WS_POPUP + WS_CAPTION + WS_SYSMENU + DS_CENTER
Thisform := oDlg
@ 012,29 GET oEdit1 ;
VAR nValor ;
SIZE 150,24 ;
STYLE ES_RIGHT ;
MAXLENGTH 12 ;
ON CHANGE {|| oEdit1_onChange() }
@ 132,71 BUTTONEX oButtonex1 ;
CAPTION "Sair" ;
SIZE 98,32 ;
STYLE BS_CENTER + WS_TABSTOP ;
ON CLICK {|| Thisform:Close() }
ACTIVATE DIALOG oDlg
RETURN oDlg:lresult
STATIC FUNCTION oEdit1_onChange()
LOCAL cValor
Thisform:oEdit1:lNumInvert := .T.
cValor := alltrim(Thisform:oEdit1:VarGet())
cValor := AllTrim(StrTran( cValor, "."))
Thisform:oEdit1:VarPut( Hb_NtoS( Val(cValor) / 100 ) )
Thisform:oEdit1:Refresh()
hwg_Keyb_Event(VK_END)
RETURN .T.
METHOD Refresh() CLASS HEdit
LOCAL vari
IF ::bSetGet != Nil
vari := Eval( ::bSetGet, , Self )
IF ! Empty( ::cPicFunc ) .OR. ! Empty( ::cPicMask )
vari := iif( vari = Nil, "", Vari )
vari := Transform( vari, ::cPicFunc + iif( Empty( ::cPicFunc ), "", " " ) + ::cPicMask )
ELSE
IF ! ::lNumInvert
vari := iif( ::cType == "D", Dtoc( vari ), iif( ::cType == "N", Str( vari ), ;
iif( ::cType == "C" .AND. ValType( vari ) == "C", Trim( vari ), "" ) ) )
ENDIF
ENDIF
::Title := vari
ENDIF
hwg_Setdlgitemtext( ::oParent:handle, ::id, ::title )
IF hwg_Iswindowvisible( ::handle ) .AND. !Empty( hwg_GetWindowParent( ::handle ) ) //hwg_Ptrtoulong( hwg_Getfocus() ) == hwg_Ptrtoulong( ::handle )
hwg_Redrawwindow( ::Handle, RDW_NOERASE + RDW_INVALIDATE + RDW_FRAME + RDW_UPDATENOW ) //+ RDW_NOCHILDREN )
ENDIF
RETURN Nil
STATIC FUNCTION oEdit1_onChange()
LOCAL cValor
Thisform:oEdit1:lNumInvert := .T.
cValor := alltrim(Thisform:oEdit1:VarGet())
cValor := AllTrim(StrTran( cValor, "."))
cValor := AllTrim(StrTran( cValor, ","))
Thisform:oEdit1:VarPut( AllTrim( Transform( Val(cValor) / 100, PicVal( Len(cValor), 2 ) ) ) )
Thisform:oEdit1:Refresh()
hwg_Keyb_Event(VK_END)
RETURN .T.
FUNCTION PicVal( nLen, nDec )
LOCAL cPicture
nDec := iif( nDec == NIL, 0, nDec )
cPicture := "999,999,999,999,999,999"
cPicture := Transform( val( Replicate( "9", nLen - nDec ) ), cPicture )
IF nDec > 0
cPicture := cPicture + "." + Replicate( "9", nDec )
ENDIF
RETURN cPicture
STATIC FUNCTION oEdit1_onChange()
LOCAL cValor
Thisform:oEdit1:lNumInvert := .T.
cValor := alltrim(Thisform:oEdit1:VarGet())
cValor := AllTrim(StrTran( cValor, "."))
cValor := AllTrim(StrTran( cValor, ","))
cValor := AllTrim( Transform( Val( cValor ) / 100, "@E" + PicVal( Len( cValor ), 2 ) ) )
ThisForm:oStatus1:SetText( cValor )
Thisform:oEdit1:VarPut( cValor )
Thisform:oEdit1:Refresh()
hwg_Keyb_Event(VK_END)
RETURN .T.
Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes