Se i tupi button hanno come group, ad esempio, Button allora devi fdare così:
i = 0
FOR EACH hcontrol IN ME.Children
'se il tipo l'oggetto è un Button
IF Object.Type(hcontrol) = "Button" THEN
'imposto il background
hcontrol.background = Color.Red
INC i
ENDIF
NEXT
Ricorda di definire i nella sub in cui usi questo codice e hcontrol AS Object
Ti ringrazio per la competenza, la gentilezza e la velocità!
Funziona perfettamente!
Edit... mi sembrava funzionasse, ma invece non va.... I colori restano quelli che erano...
Ora provo col debug a capire che fa....
Edit: col debug mi pare di aver capito che:
come del resto suggerisce il nome, non contiene il gruppo di appartenenza dell'oggetto in esame, ma il tipo (button, label...);
per cui l'espressione dell'IF:
Object.Type(hcontrol) = "Button"
risulta vera per tutti i Button della form, e non solo per quelli appartenenti al gruppo.
Bisognerebbe che:- o riuscissi a restringere il FOR .. EACH ai soli elementi del gruppo (soluzione a mio parere più elegante e pulita)
- o con l'IF interno riuscissi a selezionare solo gli elementi del gruppo
Anche io avevo pensato a qualche cosa del genere... però mi sembra comunque una soluzione che aggira il problema, invece di affrontarlo di petto.
Non posso indicizzare dei controlli in base al loro appartenere ad un gruppo?
Devi capire che purtroppo non ho la sfera magica e devo studiare il caso in base a ciò che mi dici e alle informazioni che mi dai...pertanto il tuo problema è facilmente aggirabile poichè basta inserire un if nel ciclo.
IF hcontrol.grup = "pincopallino" THEN .....
Quindi il codice in toto diventa:
i = 0
FOR EACH hcontrol IN ME.Children
'se il tipo l'oggetto è un Button
IF Object.Type(hcontrol) = "Button" THEN
'imposto il background
IF hcontrol.group = "gruppo_tuo_nuovo" THEN hcontrol.background = Color.Red
INC i
ENDIF
NEXT
Ho risolto (non molto elegantemente, lo so), in questo modo:
poiché i controlli del gruppo hanno nome n0,n1,n2...
ho assegnato il colore di background in questo modo:
hcontrol.background = .Colori[CInt(Right(hcontrol.name, Len(hcontrol.Name) - 1))]
@Ceskno: cosa intendi con:
in che modo lo controlli il gruppo?
Il gruppo l'ho impostato attribuendo come proprietà Group lo stesso nome (tramite ToolBox, non col codice). Devo fare dell'altro?
Grazie ancora!