Differenze tra le versioni di "Verificare l'esistenza di un Controllo in un Contenitore"
Da Gambas-it.org - Wikipedia.
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
Analizzeremo il caso in cui si debba verificare l'esistenza di un Oggetto grafico su un ''Form'', e l'esistenza di un Oggetto grafico a sé stante privo di ''genitore''. | Analizzeremo il caso in cui si debba verificare l'esistenza di un Oggetto grafico su un ''Form'', e l'esistenza di un Oggetto grafico a sé stante privo di ''genitore''. | ||
− | = | + | =Se si conosce solo il nome della Classe del Controllo= |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===Usando [https://gambaswiki.org/wiki/comp/gb/object/is?l=it Object.Is()]=== | ===Usando [https://gambaswiki.org/wiki/comp/gb/object/is?l=it Object.Is()]=== | ||
Riga 32: | Riga 21: | ||
For Each ob In Me.Children | For Each ob In Me.Children | ||
− | If ob Is "<FONT color=gray>''Nome_della_'''Classe'''_del_Controllo''</font>" | + | If ob Is "<FONT color=gray>''Nome_della_'''Classe'''_del_Controllo''</font>" Then |
Print "L'Oggetto è presente nel Form !" | Print "L'Oggetto è presente nel Form !" | ||
Endif | Endif | ||
Riga 53: | Riga 42: | ||
===Usando Object.Type()=== | ===Usando Object.Type()=== | ||
+ | Public Sub Button1_Click() | ||
+ | |||
+ | Dim ob As Object | ||
+ | |||
+ | For Each ob In Me.Children | ||
+ | If Object.Type(ob) = "<FONT color=gray>''Nome_della_'''Classe'''_del_Controllo_cercato''</font>" Then Print "L'Oggetto è presente nel Form !" | ||
+ | Next | ||
+ | |||
+ | End | ||
+ | ===Usando La funzione "Str()" e l'operatore "Like"=== | ||
+ | In questo caso il nome della Classe del Controllo cercato va posto fra due asterischi. | ||
Public Sub Button1_Click() | Public Sub Button1_Click() | ||
Riga 59: | Riga 59: | ||
For Each ob In Me.Children | For Each ob In Me.Children | ||
− | If | + | If Str(ob) Like "'''*'''<FONT color=gray>''Nome_della_'''Classe'''_del_Controllo_cercato''</font>'''*'''" Then Print "L'Oggetto è presente nel Form !" |
Next | Next | ||
+ | End | ||
+ | |||
+ | =Se si conosce il nome della variabile del Controllo== | ||
+ | |||
+ | ===Usando [https://gambaswiki.org/wiki/comp/gb/object/isvalid?l=it Object.IsValid()]=== | ||
+ | Public Sub Button1_Click() | ||
+ | |||
+ | If Object.IsValid(FMain["<FONT color=gray>''Nome_della_'''Variabile'''_del_Controllo''</font>"]) Then | ||
+ | Print "L'oggetto è presente nel Form !" | ||
+ | Endif | ||
+ | |||
End | End | ||
Riga 68: | Riga 79: | ||
If IsNull(Me.Controls["<FONT color=gray>''Nome_della_'''variabile'''_del_Controllo''</font>"]) = False Then | If IsNull(Me.Controls["<FONT color=gray>''Nome_della_'''variabile'''_del_Controllo''</font>"]) = False Then | ||
+ | Print "L'Oggetto è presente nel Form !" | ||
+ | Endif | ||
+ | |||
+ | <FONT color=gray>' ''oppure:''</font> | ||
+ | If IsNull(Me["<FONT color=gray>''Nome_della_'''variabile'''_del_Controllo''</font>"]) = False Then | ||
Print "L'Oggetto è presente nel Form !" | Print "L'Oggetto è presente nel Form !" | ||
Endif | Endif | ||
End | End | ||
+ | Può essere utile nel caso in cui il Controllo possa essere stato distrutto. | ||
===Usando la Proprietà ".Name" dei Controlli=== | ===Usando la Proprietà ".Name" dei Controlli=== | ||
Riga 79: | Riga 96: | ||
For Each ob In Me.Children | For Each ob In Me.Children | ||
− | If ob.Name = "<FONT color=gray>'''''Variabile'''_del_Controllo''</font>" Then | + | If ob.Name = "<FONT color=gray>''Nome_della_'''Variabile'''_del_Controllo''</font>" Then |
Print "L'oggetto è presente nel Form !" | Print "L'oggetto è presente nel Form !" | ||
Endif | Endif |
Versione attuale delle 10:06, 12 dic 2023
Analizzeremo il caso in cui si debba verificare l'esistenza di un Oggetto grafico su un Form, e l'esistenza di un Oggetto grafico a sé stante privo di genitore.
Indice
Se si conosce solo il nome della Classe del Controllo
Usando Object.Is()
Public Sub Button1_Click() Dim ob As Object For Each ob In Me.Children If Object.Is(ob, "Nome_della_Classe_dell'Oggetto") Then Print "L'oggetto è presente nel Form !" Endif Next End
Usando Is
Public Sub Button1_Click() Dim ob As Object For Each ob In Me.Children If ob Is "Nome_della_Classe_del_Controllo" Then Print "L'Oggetto è presente nel Form !" Endif Next End
Usando Object.Class().Name
Public Sub Button1_Click() Dim ob As Object For Each ob In Me.Children If Object.Class(ob).Name = "Nome_della_Classe_del_Controllo_cercato" Then Print "L'Oggetto è presente nel Form !" Endif Next End
Usando Object.Type()
Public Sub Button1_Click() Dim ob As Object For Each ob In Me.Children If Object.Type(ob) = "Nome_della_Classe_del_Controllo_cercato" Then Print "L'Oggetto è presente nel Form !" Next End
Usando La funzione "Str()" e l'operatore "Like"
In questo caso il nome della Classe del Controllo cercato va posto fra due asterischi.
Public Sub Button1_Click() Dim ob As Object For Each ob In Me.Children If Str(ob) Like "*Nome_della_Classe_del_Controllo_cercato*" Then Print "L'Oggetto è presente nel Form !" Next End
Se si conosce il nome della variabile del Controllo=
Usando Object.IsValid()
Public Sub Button1_Click() If Object.IsValid(FMain["Nome_della_Variabile_del_Controllo"]) Then Print "L'oggetto è presente nel Form !" Endif End
Usando IsNull()
Public Sub Button1_Click() If IsNull(Me.Controls["Nome_della_variabile_del_Controllo"]) = False Then Print "L'Oggetto è presente nel Form !" Endif ' oppure: If IsNull(Me["Nome_della_variabile_del_Controllo"]) = False Then Print "L'Oggetto è presente nel Form !" Endif End
Può essere utile nel caso in cui il Controllo possa essere stato distrutto.
Usando la Proprietà ".Name" dei Controlli
Public Sub Button1_Click() Dim ob As Object For Each ob In Me.Children If ob.Name = "Nome_della_Variabile_del_Controllo" Then Print "L'oggetto è presente nel Form !" Endif Next End
Verifica di un oggetto a sé stante senza Genitore
Poniamo il caso di un Oggetto di tipo Window senza genitore, creato ad esempio così:
Private w As Window Public Sub Form_Open() With w = New Window As "w" .W = 100 .H = 200 .X = 300 .Y = 300 .Background = Color.Yellow .Show End With End
Ne potremo verificare l'esistenza come segue:
Public sub Button1_Click() ' All'interno della funzione "Object.IsValid()" verrà inserita la variabile del tipo dell'oggetto a sé stante, del quale cui si vuole verificare l'esistenza: If Object.IsValid(w) Then Print "Oggetto esistente !" End