Differenze tra le versioni di "Distruggere i Controlli grafici posti in un Contenitore"

Da Gambas-it.org - Wikipedia.
Riga 33: Riga 33:
 
==Usando il ciclo "For...Each" e la variabile del tipo dei Controlli da distruggere==
 
==Usando il ciclo "For...Each" e la variabile del tipo dei Controlli da distruggere==
 
Se in un Contenitore sono presenti Controlli appartenenti a un unico tipo (ad esempio soltanto ''Button'', allora si potrà usare l ciclo "FOR...EACH" e la variabile del tipo dei Controlli da distruggere.
 
Se in un Contenitore sono presenti Controlli appartenenti a un unico tipo (ad esempio soltanto ''Button'', allora si potrà usare l ciclo "FOR...EACH" e la variabile del tipo dei Controlli da distruggere.
 +
<BR>La distruzione avverrà mediante l'uso del Metodo ".Delete" della Classe impostata dei Controlli da distruggere.
  
 
Mostriamo un esempio pratico, nel quale in un ''Panel'' sono contenuti soltanto dei ''Button'':
 
Mostriamo un esempio pratico, nel quale in un ''Panel'' sono contenuti soltanto dei ''Button'':
Riga 40: Riga 41:
 
   
 
   
 
   For Each bt In Panel1.Children
 
   For Each bt In Panel1.Children
     bt.Delete
+
     bt<FONT Color=red>.Delete</font>
 
   Next
 
   Next
 
   
 
   
Riga 47: Riga 48:
 
==Usando il ciclo "For...Each" e la variabile di tipo "Object"==
 
==Usando il ciclo "For...Each" e la variabile di tipo "Object"==
 
Se invece sul Contenitore sono presenti Controlli di vari tipi, e si intende eliminare soltanto i Controlli appartenenti a un determinato tipo, allora con il ciclo "FOR...EACH" si utilizzerà una variabile di tipo ''Object'', nella quale caricare tutti i Controlli e distinguerli successivamente all'interno del ciclo.
 
Se invece sul Contenitore sono presenti Controlli di vari tipi, e si intende eliminare soltanto i Controlli appartenenti a un determinato tipo, allora con il ciclo "FOR...EACH" si utilizzerà una variabile di tipo ''Object'', nella quale caricare tutti i Controlli e distinguerli successivamente all'interno del ciclo.
<BR>La distinzione del tipo, al quale appartiene ciascun Controllo, è effettuata mediante il Metodo "Object.Type()".  
+
<BR>La distinzione del tipo, al quale appartiene ciascun Controllo, è effettuata mediante il Metodo "Object.Type()"; mentre la distruzione avverrà mediante l'uso del Metodo ".Delete" della Classe ''Object''.
  
 
Mostriamo un esempio pratico, nel quale su un ''Form'' sono presenti vari tipi di Controllo. Si intende distruggere soltanto i ''Button'':
 
Mostriamo un esempio pratico, nel quale su un ''Form'' sono presenti vari tipi di Controllo. Si intende distruggere soltanto i ''Button'':
Riga 55: Riga 56:
 
   
 
   
 
   For Each ob In Me.Children
 
   For Each ob In Me.Children
     If Object.Type(ob) = "Button" Then ob.Delete
+
     If Object.Type(ob) = "Button" Then ob<FONT Color=red>.Delete</font>
 
   Next
 
   Next
 
   
 
   
 
  End
 
  End

Versione delle 10:06, 15 nov 2023

Per eliminare i Controlli posti in un Contenitore, si possono adottare alcune modlità.

Uso diretto del Metodo ".Clear()" della Proprietà ".Children"

Il Metodo ".Clear()" della Proprietà ".Children" di un Contenitore distruggerà tutti i Controlli presenti nel Contenitore medesimo.

Nel seguente esempio pratico poniamo vari Controlli sul Form, e con essi anche un Button cliccando il quale azionerà l'azione distruttiva:

Public Sub Button1_Click()

 Me.Children.Clear

End

Qui i Controlli saranno posti in un Panel:

Public Sub Button1_Click()

 Panel1.Children.Clear

End

Uso della Classe ContainerChildren

Alla variabile del tipo della Classe non creabile ContainerChildren, va assegnato il riferimento ai "Figli" (Children ) del Contenitore, e successivamente usare il Metodo ".Clear()".

Mostriamo un esempio pratico:

Public Sub Button1_Click()

 Dim cn As ContainerChildren

 cn = Me.Children

 cn.Clear
 
End

Usando il ciclo "For...Each" e la variabile del tipo dei Controlli da distruggere

Se in un Contenitore sono presenti Controlli appartenenti a un unico tipo (ad esempio soltanto Button, allora si potrà usare l ciclo "FOR...EACH" e la variabile del tipo dei Controlli da distruggere.
La distruzione avverrà mediante l'uso del Metodo ".Delete" della Classe impostata dei Controlli da distruggere.

Mostriamo un esempio pratico, nel quale in un Panel sono contenuti soltanto dei Button:

Public Sub Button5_Click()

 Dim bt As Button

 For Each bt In Panel1.Children
   bt.Delete
 Next

End

Usando il ciclo "For...Each" e la variabile di tipo "Object"

Se invece sul Contenitore sono presenti Controlli di vari tipi, e si intende eliminare soltanto i Controlli appartenenti a un determinato tipo, allora con il ciclo "FOR...EACH" si utilizzerà una variabile di tipo Object, nella quale caricare tutti i Controlli e distinguerli successivamente all'interno del ciclo.
La distinzione del tipo, al quale appartiene ciascun Controllo, è effettuata mediante il Metodo "Object.Type()"; mentre la distruzione avverrà mediante l'uso del Metodo ".Delete" della Classe Object.

Mostriamo un esempio pratico, nel quale su un Form sono presenti vari tipi di Controllo. Si intende distruggere soltanto i Button:

Public Sub Button1_Click()

 Dim ob As Object

 For Each ob In Me.Children
   If Object.Type(ob) = "Button" Then ob.Delete
 Next

End