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


    Commenti

    Attendere...
    Il commento immesso è troppo lungo. Immetti un commento più breve.
    Immissione non effettuata. Riprova.
    Impossibile aggiungere il commento al momento. Riprova più tardi.
    Per aggiungere un commento è necessaria l'autorizzazione di un genitore. Chiedi autorizzazione
    I tuoi genitori hanno disattivato i commenti.
    Impossibile eliminare il commento al momento. Riprova più tardi.
    Hai raggiunto il numero massimo di commenti pubblicabili giornalmente. Riprova tra 24 ore.
    Impossibile lasciare commenti. La funzionalità è stata disattivata perché i sistemi hanno rilevato una possibile attività di spamming dal tuo account. Se ritieni che il tuo account è stato disattivato per errore, contatta il supporto tecnico di Windows Live.
    Esegui il seguente controllo di protezione per completare la pubblicazione del commento.
    I caratteri digitati nel controllo di protezione devono corrispondere ai caratteri dell'immagine o della riproduzione audio.

    Per aggiungere un commento, accedi con il tuo Windows Live ID (se utilizzi Hotmail, Messenger o Xbox LIVE possiedi già un Windows Live ID). Accedi


    Non hai ancora un Windows Live ID? Registrati

    Riferimenti

    L'URL di riferimento per questo intervento è:
    http://oohg-br.spaces.live.com/blog/cns!692520CDA770B22E!194.trak
    Blog che fanno riferimento a questo intervento
    • Nessuno