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 Button. Successivamente lo renderemo nascosto.

Private w As Watcher  ' Dichiara 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()

' Nasconde l'Oggetto grafico (il "Button2") osservato:
 Button2.Hide
 
End

Public Sub Osservazione_Hide()  ' Se viene nascosto il Controllo “osservato” (in tal caso "Button2"), 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