Gambas-it

Gambas3 => Programmazione => Topic aperto da: vuott - 12 Novembre 2011, 21:31:07

Titolo: [Risolto] Ridimensionare oggetti del medesimo tipo, ma di Gruppi diversi
Inserito da: vuott - 12 Novembre 2011, 21:31:07
Presupposti:
- allora... ho un contenitore qualsiasi, per esempio un Panel1, nel quale sono children 4 Button;
- questi 4 Button sono raggruppati in due Group aventi nomi diversi: per esempio: button1 e button2 appartengono al Gruppo: "gruppoUno", mentre button3 e button4 appartengono al Gruppo: "gruppoDue";

Problema:
- usando la sintassi For Each ... IN ...... vorrei modificare, per esempio, la proprietà Width di quei button in modo distinto, ossia soltanto dei button appartenenti ad un solo gruppo (ad esempio solo ai due button appartenenti al Gruppo chiamato "gruppoDue", lasciando inalterata quindi la Width dei button appartenenti al Gruppo "gruppoUno").  :rolleyes:
- vorrei gestire la cosa - se possibile - utilizzando la denominazione del Gruppo per coinvolgere in un botta sola i due button interessati, e non quindi scrivere i nomi di ciascuno dei due button.

Non so se mi sono spiegato....
Titolo: Re: Ridimensionare oggetti del medesimo tipo, ma appartenenti a Gruppi diversi
Inserito da: sotema - 12 Novembre 2011, 22:19:33
Credo che la sola possibilità sia utilizzare dei contenitori del tipo Hbox / Vbox in cui raggruppare i button di ciascun gruppo, quindi eseguire un ciclo in una sub del tipo:
Codice: vb [Seleziona]
Dim btn As Button
  For Each btn In Vbox1.children
  btn.w = 50
 
Next


Titolo: Re: Ridimensionare oggetti del medesimo tipo, ma appartenenti a Gruppi diversi
Inserito da: milio - 12 Novembre 2011, 22:41:05
Ma se tu vuoi che solo i button di un certo gruppo devono cambiar caratteristica non basta far cosi'?

Dim oBtn as Button

  For Each oBtn In Panel1.Children
    If oBtn.Group = "gruppouno" then oBtn.W = 50
  Next

 ;)
Titolo: Re: Ridimensionare oggetti del medesimo tipo, ma appartenenti a Gruppi diversi
Inserito da: sotema - 12 Novembre 2011, 22:54:01
Non mi pare che esista la proprietà .Group  :-\
Titolo: Re: Ridimensionare oggetti del medesimo tipo, ma appartenenti a Gruppi diversi
Inserito da: milio - 12 Novembre 2011, 22:57:42
Ops e' vero che pirla :)

Si puo' usare la proprietà Tag in alternativa...
Titolo: Re: Ridimensionare oggetti del medesimo tipo, ma appartenenti a Gruppi diversi
Inserito da: vuott - 12 Novembre 2011, 23:23:34
Ringrazio vivamente  :ciao: i miei amici Sotema e Milio per i loro interventi.

Faccio qualche prova al riguardo  :coder:  e faccio sapere....



Prove effettuate (nessuna gestione dei Group):

Soluzione di Sotema
Ovviamente funziona (si può utilizzare volendo anche Panel).
Ho provato, poi, la strada indicata da Sotema per ridimensionare in un solo momento non solo la proprietà Width, ma anche quella Height. Per fare ciò ho così proceduto:
Ho inserito prima un HBox, quindi un VBox, e in quest'ultimo un Button; impostando la gerarchia dei tre oggetti nella sequenza prima espressa, ossia: HBox-->VBox-->Button.
Per quel riguarda il codice ho fatto così:
Codice: gambas [Seleziona]

Public Sub soluzioneSotema()
 Dim btn As Button
 Dim vb As VBox

' ridimensiono VBox.Width (e quindi indirettamente anche Button.Width)
  For Each vb In HBox1.Children
    vb.Width = 10
  Next

' passo quindi a ridimensionare direttamente Button.Height
  For Each btn In VBox1.children
    btn.H = 10  
  Next
End


Ho ottenuto il contemporaneo ridimensionamento di entrambe le proprietà del Button.


Soluzione di Milio (con il .Tag)
Funziona. Rapida e semplice.
Provo a modificare entrambe le dimensioni del Button:
Codice: gambas [Seleziona]

Public Sub soluzioneMilio()
  Dim btn As Button

For Each btn In Panel1.Children
    If btn.Tag = "milio" Then
     btn.W = 60
     btn.H = 10
    Endif
  Next
End


Molto rapido.



Molto bene.  :)
Ancora grazie ad entrambi.   :ciao: