Uso della classe Watcher

Da Gambas-it.org - Wikipedia.

La classe Watcher implementa un oggetto che può osservare un qualsiasi "Controllo" e sollevare alcuni eventi quando succede qualcosa su di esso. Questa classe è particolarmente utile per sapere quando un Controllo (Oggetto o Contenitore) viene spostato, ridimensionato, reso visibile o nascosto.

Esempio: poniamo il caso di porre sotto osservazione un Button2. Successivamente lo renderemo nascosto.

Private w As Watcher  ' Dichiariamo l'oggetto di tipo della Classe “Watcher” che osserverà il Controllo


Public Sub Form_Open()

' L'oggetto di tipo della Classe “Watcher” osserverà in particolare il Controllo: Button2.
' L'oggetto di tipo "Watcher" viene associato al Gruppo di nome: "Osservazione":
 w = New Watcher(Button2) As "Osservazione"

End

Public Sub Button1_Click()

' Nascondiamo l'oggetto (il "Button2") osservato:
 Button2.Hide
 
End

Public Sub Osservazione_Hide()  ' Se viene nascosto il Controllo “osservato”, viene allora sollevato questo evento
 
 Print “E' stato nascosto l'oggetto osservato !”
 
End

In quest'altro esempio, invece, porremo sotto osservazione il Form principale, e con l'Evento "_Move()" della Classe "Watcher" leggeremo i valori delle Proprietà ".X" e ".Y" del Form durante il suo spostamento effettuato con il mouse:

Private w As Watcher


Public Sub Form_Open()

 w = New Watcher(Me) As "Osservazione"

End

Public Sub Osservazione_Move()

 Me.Title = CStr(Me.X) & "  " & CStr(Me.Y)

End