Newsgroup: it.comp.lang.visual-basic
Titolo: etichetta indicizzata

Se eseguo questa riga non ho nessun problema:
frm_prm_sg.Label2(i).Caption = Me.Text1.Text
ma la Label2 non è sempre la 2, quindi ho creato la variabile u che cambia
il n° di etichetta quindi ho scritto:
frm_prm_sg.Label(u)(i).Caption = Me.Text1.Text
ma non me lo fà fare!!!!
com'è il comando giusto da eseguire????
Grazie
Fabio
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


Usa .Controls.Item( dove la key con cui individui il controllo è una 
stringa composta dinamicamente.
Ciao
Alberto
-- 
Thomas Fuller: Ci sono persone che sono state considerate coraggiose 
perchè avevano troppa paura per scappare.

 --
Ho provato così:
frm_prm_sg.Controls.Item("label" & num_lab).Caption = Me.Text1.Text
dove num_lab contiene il numero dell'etichetta..........
ma non funge!!!!!!!!!
Grazie


 ma non funge!!!!!!!!!
Con la tecnica che ti suggerivo, non hai strettamente bisogno 
dell'array di controlli, quindi potresti averlo tolto. Nel caso, la tua 
sintassi dovrebbe funzionare.
Se invece hai lasciato l'array di controlli, ovviamente dovrai anche 
indicare l'indice:
Me.Controls.Item("label1")(1).Caption = "ciao"
Ciao
Alberto
-- 
Ho spiegato a mio nipote cos'è il compromesso: se per le vacanze tua 
madre vuole andare al mare e tuo padre invece in montagna, il 
compromesso è che si va al mare, ma il papà può portarsi gli sci.

 Alberto
Grazie Alberto mi sei stato di grande 
aiuto.il
 codice che mi funziona č
questo:
i = Me.Tag 'l'indice dell'etichetta
nomelab = "label" & num_lab ' num_lab contiene il numero dell'etichetta (in
questo caso 2)
frm_prm_sg.Controls.Item(nomelab)(i).Caption = Me.Text1.Text
Grazie ancora
Fabio


 frm_prm_sg.Controls.Item(nomelab)(i).Caption = Me.Text1.Text
Sono contento che funzioni.
Ma vedo molto caos coi tipi.
L'indice dell'array è un numerico, quindi i DEVE essere numerica. Ma se 
i è numerica, quell'assegnzione i = Me.Tag è un pugno in un occhio.
Analogamente, mi auguro che num_lab sia una stringa...
Ciao
Alberto
-- 
Carlo Rubbia: Siamo su un treno che va a trecento chilometri all'ora, 
non sappiamo dove ci sta portando e, soprattutto, ci siamo accorti che 
non c'è il macchinista.

 Alberto
mmmmmm
avrai capito che non sono un professionista con Visula Basic 6
num_lab è un intero. Non sò perchè quel Me.Tag è un pugno nell'occhio.
Andava meglio myForm.tag?
Ciao


 Andava meglio myForm.tag?
Perchè Me.Tag è una stringa, mentre i è un numerico. Scrivendo i = 
Me.Tag, tu di fatto stai scrivendo i = CDbl(Me.Tag)
Ma anzichè scriverlo, lasci che sia vb a gestirtelo in maniera 
implicita. Questo rende poco leggibile il codice. Ad esempio, se Me.Tag 
contiene una lettera, cosa succede?
Analogamente, se Num_Lab è un intero, non va concatenato con una 
stringa, se non dopo conversione in stringa:
"Label" & CStr(num_Lab)
Poi, le cose funzionano lo stesso perchè vb tollera queste 
imprecisioni, ma se il tuo software dovesse diventare complesso, o 
magari installato su macchine con sistemi operativi non italiani (e ce 
ne sono moltissime anche in Italia, io in ufficio ne ho diverse), 
questo genere di 'automatismi' espone il fianco a decine di bug 
introvabili...
Ciao
Alberto
-- 
La forza di volontà è guardare negli occhi una ragazza in topless.

 ha scritto:

Grazie Alberto sei stato preziosissimo!!!!
E grazie per la disponibilità!!!


 Perchè Me.Tag è una stringa, mentre i è un numerico.
A essere precisi in vb6 Tag è Variant.
Comunque non capisco quale sia l'id per Fabio, se l'indece della matrice, 
Tag o la finale del nome dell'etichetta... secondo me sta facendo su un 
casino per niente.
Ad es. mi lascia perplesso la frase iniziale
"
frm_prm_sg.Label2(i).Caption = Me.Text1.Text
ma la Label2 non è sempre la 2
"
A cosa è riferito "2"?
Ciao