Differenze tra le versioni di "Individuare una Classe di oggetti fra molti"

Da Gambas-it.org - Wikipedia.
Riga 10: Riga 10:
 
     For Each obj In FMain.Children
 
     For Each obj In FMain.Children
 
  <FONT color=#006400>' ''(ma potremmo anche scrivere: '''For Each obj In FMain.Controls''')''</font>
 
  <FONT color=#006400>' ''(ma potremmo anche scrivere: '''For Each obj In FMain.Controls''')''</font>
 +
 +
<FONT color=#006400>' ''...effettuiamo una verifica: se il tipo di oggetto è un "Button"...'</font>
 +
      If Object.Type(obj) = "Button" Then
 +
<FONT color=#006400>' ''...allora ne vediamo in console il nome della Classe di appartenenza,:'</font>
 +
        Print obj.Name
 +
<FONT color=#006400>' ''e, volendo, gli modifichiamo una proprietà:'</font>
 +
        obj.Text = "tasto"
 +
      Endif
 +
    Next
 +
 +
'''End'''
 +
 +
 +
Qualora gli oggetti siano posti all'interno di un Contenitore, ad esempio un ''Panel'', allora non potrà essere utilizzata la proprietà ''Controls'' (proprietà non posseduta dai Contenitori), ma si utilizzerà la proprietà ''Children''.
 +
'''Public''' Sub Button1_Click()
 +
 +
  Dim obj As Object
 +
 
 +
<FONT color=#006400>' ''Per ogni oggetto posto nel Form...'</font>
 +
    For Each obj In Panel1.Children
 
   
 
   
 
  <FONT color=#006400>' ''...effettuiamo una verifica: se il tipo di oggetto è un "Button"...'</font>
 
  <FONT color=#006400>' ''...effettuiamo una verifica: se il tipo di oggetto è un "Button"...'</font>

Versione delle 11:28, 11 feb 2013

Il caso è quello in cui, avendo in un qualsiasi contenitore una molteplicità di oggetti facenti parte di due o più Classi, si intende individuare soltanto gli oggetti appartenenti ad una specifica Classe, ed eventualmente modificarne una o più proprietà.

Poniamo l'esempio specifico di avere su un Form sei oggetti, appartenenti in numero eguale a tre Classi: due Button, due TextArea e due RadioButton.
Vogliamo individuare gli oggetti appartenenti alla sola Classe Button, e modificarne la proprietà Text:

Public Sub Button1_Click()

 Dim obj As Object
 
' Per ogni oggetto posto nel Form...'
   For Each obj In FMain.Children
' (ma potremmo anche scrivere: For Each obj In FMain.Controls)

' ...effettuiamo una verifica: se il tipo di oggetto è un "Button"...'
     If Object.Type(obj) = "Button" Then
' ...allora ne vediamo in console il nome della Classe di appartenenza,:'
       Print obj.Name
' e, volendo, gli modifichiamo una proprietà:'
       obj.Text = "tasto"
     Endif
   Next

End


Qualora gli oggetti siano posti all'interno di un Contenitore, ad esempio un Panel, allora non potrà essere utilizzata la proprietà Controls (proprietà non posseduta dai Contenitori), ma si utilizzerà la proprietà Children.

Public Sub Button1_Click()

 Dim obj As Object
 
' Per ogni oggetto posto nel Form...'
   For Each obj In Panel1.Children

' ...effettuiamo una verifica: se il tipo di oggetto è un "Button"...'
     If Object.Type(obj) = "Button" Then
' ...allora ne vediamo in console il nome della Classe di appartenenza,:'
       Print obj.Name
' e, volendo, gli modifichiamo una proprietà:'
       obj.Text = "tasto"
     Endif
   Next

End