Object.Attach (gb)
Static Sub Attach ( Object As Object, Parent As Object, Name As String )
Unisce un oggetto (
object) al suo genitore.
Name è il nome utilizzato per la ricerca dei gestori degli eventi nell'oggetto
Parent.
Ogni evento generato dall'oggetto sarà gestito da un gestore di eventi
situato nel suo genitore.
Se il genitore è una classe, i gestori degli eventi saranno metodi static
della classe.
Il seguente codice:
hObject = NEW MyClass
Object.Attach(hObject, ME, "EventName")
è equivalente a:
hObject = NEW MyClass AS "EventName"
Esempi
PUBLIC Process1 AS Process
...
Process1 = SHELL "find /" FOR READ
Object.Attach(Process1, ME, "Process1")
...
PUBLIC SUB Process1_Read()
Message.Info("Ottenuto output da Process1!")
' e poi legge e fa qualcosa con l'output ...
END
L'esempio successivo creerà 8 PictureBox e ogni volta che si fa clic su una delle caselle immagine (MouseUp), lo stato on/off nella proprietà Tag e
Picture vengono attivati.
Qui viene dimostrato come una matrice di elementi di controllo può ricevere un segnale, in questo esempio il segnale "MouseUp"
Private $picOn As Picture = Picture["icon:/32/connect"]
Private $picOff As Picture = Picture["icon:/32/disconnect"]
Public Sub Form_Show()
Dim i As Integer
Dim hSwitch As PictureBox
' Allinea ordinatamente tutti i PictureBox di fila
Me.Arrangement = Arrange.Row
' Crea 8 PictureBoxes
For i = 1 To 8
hSwitch = New PictureBox(Me)
hSwitch.Resize(32, 32)
' Il tag indica se l'interruttore è acceso o spento
hSwitch.Tag = False
hSwitch.Picture = $picOff
' Nota: Invece di Object.Attach() puoi assegnare il nome dell'evento alla creazione dell'oggetto,
' cioè: hSwitch = New PictureBox(Me) As "Switch"
Object.Attach(hSwitch, Me, "Switch")
Next
End
Public Sub Switch_MouseUp()
Dim hSwitch As PictureBox = Last ' ottiene la casella che ha generato l'evento (è stato cliccato)
' Sposta l'interruttore e assegnare l'immagine appropriata
hSwitch.Tag = Not hSwitch.Tag
If hSwitch.Tag Then
hSwitch.Picture = $picOn
Else
hSwitch.Picture = $picOff
Endif
End