Differenze tra le versioni di "Eliminare una scheda da una TabStrip"

Da Gambas-it.org - Wikipedia.
Riga 5: Riga 5:
 
Supponiamo di avere una "TabStrip" con un certo numero di schede contenenti (tutte o alcune) anche eventualmente alcuni oggetti grafici.  
 
Supponiamo di avere una "TabStrip" con un certo numero di schede contenenti (tutte o alcune) anche eventualmente alcuni oggetti grafici.  
 
<BR>Si provvederà a ripulire ciascuna scheda attiva della "TabStrip" dagli eventuali oggetti grafici, su di esse  presenti, e successivamente la scheda medesima.
 
<BR>Si provvederà a ripulire ciascuna scheda attiva della "TabStrip" dagli eventuali oggetti grafici, su di esse  presenti, e successivamente la scheda medesima.
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
   
 
   
 
   Dim ob As Object
 
   Dim ob As Object
Riga 14: Riga 14:
 
   Next
 
   Next
 
   
 
   
  <Font Color=gray>' ''Se scheda attiva corrente non è la prima (e quindi non è l'unica esistente, non essendo possibile l'esistenza di una "TabStrip" senza schede), la scheda viene con sicurezza eliminata dalla "TabStrip":''</font>
+
  <Font Color=gray>' ''Se vi è più di una scheda attiva, la scheda corrente viene eliminata dalla "TabStrip":''</font>
   If TabStrip1.Index > 0 Then TabStrip1[TabStrip1.Index].Delete
+
   If TabStrip1.Count > 1 Then TabStrip1[TabStrip1.Index].Delete
 
   
 
   
  '''End'''
+
  End
 
+
Se si vogliono eliminare con un ciclo le schede, lasciando la sola prima scheda (tenendo conto che si dovrà lasciare attiva almeno una scheda, non essendo possibile l'esistenza di una "TabStrip" senza schede), anch'essa però priva di eventuali Controlli presenti su di essa all'inizio:
Se si vogliono eliminare con un ciclo le schede (tenendo comunque conto che si dovrà lasciare attiva una scheda, non essendo possibile l'esistenza di una "TabStrip" senza schede):
+
  Public Sub Button1_Click()
  '''Public''' Sub Button1_Click()
 
 
    
 
    
 
   Dim ob As Object
 
   Dim ob As Object
 
    
 
    
 
   Do  
 
   Do  
     For Each child In TabStrip1[TabStrip1.Index].Children
+
     For Each ob In TabStrip1[TabStrip1.Index].Children
 
  <Font Color=gray>' ''Elimina gli eventuali oggetti grafici presenti sulla scheda corrente:''</font>
 
  <Font Color=gray>' ''Elimina gli eventuali oggetti grafici presenti sulla scheda corrente:''</font>
 
       ob.Delete
 
       ob.Delete
Riga 35: Riga 34:
 
   Loop
 
   Loop
 
    
 
    
  '''End'''
+
  End

Versione delle 06:16, 3 ago 2023

Per eliminare una scheda (o linguetta) da una "TabStrip", è sufficiente utilizzare il metodo ".Delete" della scheda individuata, purché tale scheda sia priva di oggetti su di essa.
Bisogna tenere conto anche che non è possibile eliminare tutte le schede da una "TabStrip", non essendo possibile l'esistenza di una "TabStrip" senza schede.

Esempio pratico

Supponiamo di avere una "TabStrip" con un certo numero di schede contenenti (tutte o alcune) anche eventualmente alcuni oggetti grafici.
Si provvederà a ripulire ciascuna scheda attiva della "TabStrip" dagli eventuali oggetti grafici, su di esse presenti, e successivamente la scheda medesima.

Public Sub Button1_Click()

 Dim ob As Object

' Viene eliminato dalla scheda attiva corrente ogni eventuale oggetto ivi presente:
 For Each ob In TabStrip1[TabStrip1.Index].Children
   ob.Delete
 Next

' Se vi è più di una scheda attiva, la scheda corrente viene eliminata dalla "TabStrip":
 If TabStrip1.Count > 1 Then TabStrip1[TabStrip1.Index].Delete

End

Se si vogliono eliminare con un ciclo le schede, lasciando la sola prima scheda (tenendo conto che si dovrà lasciare attiva almeno una scheda, non essendo possibile l'esistenza di una "TabStrip" senza schede), anch'essa però priva di eventuali Controlli presenti su di essa all'inizio:

Public Sub Button1_Click()
 
 Dim ob As Object
 
 Do 
   For Each ob In TabStrip1[TabStrip1.Index].Children
' Elimina gli eventuali oggetti grafici presenti sulla scheda corrente:
     ob.Delete
   Next
' Se si è giunti alla prima scheda (dunque all'unica ormai presente), si esce dal ciclo:
   If TabStrip1.Index == 0 Then Exit
' Elimina la scheda corrente:
   TabStrip1[TabStrip1.Index].Delete
 Loop
 
End