Profilo di CarlosLIBs Gráfica para (x)Har...BlogElenchiAmici Strumenti Guida

Blog


03/03/2009

Eventos, um pouco mais

O objetivo deste “post” é aprofundar um pouco mais o estudo de eventos, com um exemplo simples.

 

A idéia é simples, quero colocar zeros (000) antes do numeral digitado, isso é interessante para chaves (índices).

 

Para isso devo interagir com o evento ON LOSTFOCUS do objeto TEXTBOX, ou seja, “ao perder o foco” da “caixa de textos”.

 

Vamos criar um formulário novo e colocar 2 Label e 2 TextBox

 

 

* ---------------------- Inicio do código ---------------*

* http://www.powerinformatica.com.br
* Carlos Alberto Nunes Susviela
* Origem: http://oohg-br.spaces.live.com/blog
*
* Estudando um pouco de eventos ( 2 )
*
#include "oohg.ch"

Declare window FrmPrincipal    // Visivel em todo o sistema

Function Main
    SET NAVIGATION EXTENDED     // Usa ENTER para troca de campos
                                // quem vem do clipper vai gostar disso

    Define Window frmPrincipal ;
           Title "Estudando Eventos - 2 " ;
        WIDTH 640 HEIGHT 480       ;            // Tamanho da Janela
        Main               

           Define STATUSBAR
              STATUSITEM "http://oohg-br.spaces.live.com/blog/" WIDTH   80
           End STATUSBAR

           *-------------------------------------------Label
            @ 46,31 LABEL lblCodigo ;
            WIDTH 120 ;
            HEIGHT 24 ;
            VALUE 'Código....:' ;
            FONT 'MS Sans Serif' ;
            SIZE         10

            @ 90,30 LABEL lblNome ;
            WIDTH 120 ;
            HEIGHT 24 ;
            VALUE 'Nome Cliente.:' ;
            FONT 'MS Sans Serif' ;
            SIZE 10

            *------------------------------------------- TextBox
            @ 41,163 TEXTBOX txtCodigo ;
            HEIGHT 24 ;
            WIDTH 120 ;
            Font 'MS Sans Serif' ;
            size 10 ;
            MAXLENGTH 6 ;
            ON LOSTFOCUS  ZerosToCodigo(6)       // Ao perder o foco executa
                                                 // a funcao que coloca zeros
                                                 // a esquerda do codigo

            @ 78,163 TEXTBOX txtNome ;
            HEIGHT 24 ;
            WIDTH 279 ;
            Font 'MS Sans Serif' ;
            size 10 ;
            MAXLENGTH 50

            *------------------------------------------- Button
           @ 380,500 BUTTON btnSair  ;
           ACTION  btnSairClick() ;
           WIDTH 80 HEIGHT 27 ;
           CAPTION "&Sair"    ;
           TOOLTIP 'Clique aqui para sair do Programa'

    End Window

 

    frmPrincipal.center()
    frmPrincipal.Activate()       // Aqui é onde, Realmente inicia o programa

Return


* Função a ser disparada quando for clicado o botão btnSair
*-----------------------------------------------------------------------------*
Function btnSairClick()
*-----------------------------------------------------------------------------*

  if MsgYesNo("Deseja Sair do Sistema ?" , "Aviso...!" )
     FrmPrincipal.release                    // termina o formulario(libera)
  EndIf

Return Nil


* Função a ser disparada cada vez que o objeto TextoBox perde o foco (saiu)
*-----------------------------------------------------------------------------*
Function ZerosToCodigo(sTamanho)
*-----------------------------------------------------------------------------*
    Local sCodigo := Alltrim(FrmPrincipal.txtCodigo.value)
    Local szeros := Replicate("0", sTamanho - Len(sCodigo))

    FrmPrincipal.txtCodigo.value := sZeros + sCodigo

Return Nil
* ---------------------- Fim do código -----------------*

 

Conclusão: Como se pode perceber basta saber qual evento usar que podemos fazer muita coisa com essa lib.

 

Exercícios:


Ao perder o foco do TextBox onde se digita o nome do cliente, valide o mesmo para que não seja permitido deixar o campo vazio, ou seja force a digitação do nome do cliente.

Dica: você vai precisar da propriedade “SetFocus” para colocar o cursor novamente no campo Nome do Cliente.

Assim:  FrmPrincipal.txtCodigo.Setfocus

 

 

Carlos Alberto Nunes Susviela

www.PowerInformatica.com.br