Tutorial Gambas

8. Trabalhando com eventos


A interface gráfica oferece uma série de eventos para modelar o comportamento de um programa, também podemos criar nossos próprios eventos personalizados, e não só em programas gráficos, mas também em programas de console, já que a gestão de eventos do Gambas é independente do ambiente gráfico, diferente de outras linguagens.


Para entendermos, criaremos um módulo de classe chamado, nosso exemplo, "ClsElemento". Esta classe de exemplo, terá um só método " "Chamada()" que incrementa um contador. Uma vez que o contador alcance o valor "10", reseta-se o contador, e dispara um evento para informar isso.


A primeira coisa a fazer é declarar o evento. Neste caso, enviará como parâmetro uma cadeia advertindo que o contador vale 10:

EVENT MeuEvento(Data AS String)

Após isto, adicionaremos uma variável privada que atua como contador:

PRIVATE Contador AS Integer 

Escreveremos agora o código da função de chamada:


PUBLIC SUB Chamada()

 ' Incrementamos o contador
  Contador = Contador + 1

  IF Contador > 9 THEN

    ' Si o valor do contador é 10
    ' disparamos o evento
    RAISE MeuEvento("Contador vale 10")

    ' Y resetamos o contador
    Contador = 0

  END IF

END
 

Finalmente, escreveremos o código principal do programa. para isso criaremos um formulário com um botão. No inicio declaramos um objeto de nossa classe:


                        
PRIVATE MinhaClasse AS ClsElemento
 

Ao abrir-se o formulário, criaremos o objeto, declarando-o "Observador" de eventos entre aspas:


                        
PUBLIC SUB Form_Open()

  MinhaClasse = NEW ClsElemento AS "MeuObservador"

END
 

Adicionamos ao botão o código para que utilize o objeto:


                        
PUBLIC SUB Button1_Click()

  MinhaClasse.Chamada()

END
 

E finalmente, recorremos ao evento:

                        
PUBLIC SUB MeuObservador_MeuEvento(Data AS String)

      Message.Info (Data)

END
 

Esta função tem o nome de "observador" de eventos, um hífen baixo e o nome do evento, pelo que será chamada quando dispara-se o evento.


Código completo de "ClsElemento":

                        
' Gambas class file
PRIVATE Contador AS Integer
EVENT MeuEvento(Data AS String)

PUBLIC SUB Chamada()

    Contador = Contador + 1

  IF Contador > 9 THEN

  RAISE MeuEvento("Contador vale 10")

    Contador = 0

  END IF

END
 

Código completo de "Form1":


                        
PRIVATE MinhaClasse AS ClsElemento

PUBLIC SUB Button1_Click()

  MinhaClasse.Chamada ()

END

PUBLIC SUB MeuObservador_MeuEvento(Data AS String)

  Message.Info (Data)

END


PUBLIC SUB Form_Open()

  MinhaClasse = NEW ClsElemento AS "MeuObservador"

END
 
 << Anterior     Próximo >>  




Autor e licença

Publicado por Vários autores em http://wiki.gnulinex.org/gambas/4

Licença Creative Commons.

Este conteúdo foi publicado por Antonio Sousa, respeitando as licenças  de publicações . Se for detectado algum erro na atribuição do tutorial relacionado com seus direitos de atribuição contate gambastutor@yahoo.com.br e procederemos as modificações


   
Hosted by www.Geocities.ws

1