Clipper On Line • Ver Tópico - Entrada de dados com get

Entrada de dados com get

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Entrada de dados com get

Mensagempor asimoes » 23 Mar 2014 11:42

Exemplo:

  
   nVlrUti:=APS01->VL_Uti1
   
   nVlrUti:=GetGui("Valor UTI","Entre com o valor da UTI:",nVlrUti,"@E 999.99",'xValor > 0','Deve ser informado um valor válido.')
   
   IF Empty(nVlrUti) .OR. APS01->VL_Uti1 = nVlrUti
      RETURN Nil
   ENDIF



FUNCTION GetGui( cTitle, cText, xValue, cPicture, cValid,cMensValid)
LOCAL oModDlg, oFont:=HFont():Add( "MS Sans Serif", 0, - 13 )
LOCAL oIconInput  :=HIcon():AddResource("ICON_INPUT32")
LOCAL oIconOk     :=HIcon():AddResource("ICON_OK16")
LOCAL oIconCancela:=HIcon():AddResource("ICON_SAIR16")
LOCAL lSairSemOk:=.F.
PRIVATE xValor:=xValue, xOldValue:=xValue, oGet, lValida:=.F.   

   HB_Default(@cValid,'.T.')
   HB_Default(@cMensValid,'')
   
   DO WHILE .T.   
   
      INIT DIALOG oModDlg TITLE cTitle AT 0, 0 SIZE 300, 110 ;
           ICON oIconInput ;
           FONT oFont ;
           CLIPPER NOEXIT;
           STYLE DS_CENTER+ WS_POPUP + WS_VISIBLE + WS_CAPTION + WS_SYSMENU
           
     
      @ 20, 10 SAY cText SIZE 260, 22
     
      @ 20, 35 GET oGet VAR xValue SIZE 260, 26 ;
                   STYLE WS_TABSTOP + ES_AUTOHSCROLL + WS_DLGFRAME ;
                   COLOR hwg_RGB(0,0,255) BACKCOLOR 16777172 ;
                   VALID {||xValor:=xValue}
                   
               oModDlg:aControls[ 2 ]:Anchor := ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS
               
               oGet:ParsePict( cPicture, xValue )
     
       
      x1:=Int( oModDlg:nWidth / 2 ) - 90
     
      @ x1, 75 BUTTONEX "Ok" ID IDOK SIZE 80, 20 ICON oIconOk:handle ;
               ON CLICK {||IF(!ValidaX(cValid,cMensValid),oGet:SetFocus(),HWG_EndDialog())} ;
               TOOLTIP ''
               
               oModDlg:aControls[ 3 ]:Anchor := ANCHOR_BOTTOMABS
     
      @ x1 + 100,75 BUTTONEX "Cancelar" ID IDCANCEL SIZE 80, 20 ;
                    ICON oIconCancela:handle ;
                    ON CLICK {||lSairSemOk:=.T.,HWG_EndDialog()} ;
                    TOOLTIP "Clique aqui para cancelar."

               oModDlg:aControls[ 4 ]:Anchor := ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS
     
      ACTIVATE DIALOG oModDlg ON ACTIVATE { || IIF( ! Empty( xValue ), hwg_KEYB_EVENT( VK_END ), .T. ) }

      oFont:Release()
     
      IF !lValida
         xValue:=xOldValue
      ENDIF

      RELEASE xValor, xOldValue, oGet, lValida   

      EXIT
   ENDDO
RETURN xValue

FUNCTION ValidaX(cValid,cMensValid)
  lValida:=&cValid.
  IF !lValida
     hwg_MsgStop(cMensValid,"Atenção")
     oGet:VarPut(xOldValue)
     oGet:Refresh()
     hwg_Keyb_Event( VK_END )
  ENDIF
RETURN lValida
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes



Retornar para HwGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro