Newsgroup: it.comp.lang.visual-basic
Titolo: (? - 3) UBound su oggetti.

Terza ed ultima domanda del giorno.
Scusate se ne approfitto.
Su un form ho un array di controlli, ad esempio 10 TextBox.
(Vi chiederete perchè continuo ad usare i TextBox come esempio. Per puro
caso.)
Utilizzati per inserire una serie di dati.
Voglio resettare tutti i TextBox.
Faccio un ciclo del tipo
Dim i%
For i=0 to 9
  TextBox(i).Text=""
next i
Quando nel corso dello sviluppo decido di inserire l'undicesimo TextBox,
devo andare a modificare anche il valore sul ciclo o dei cicli se ne ho
fatti altri.
Per non rischiare di dimenticarne qualcuno, preferirei fare una cosa del
tipo:
Dim i%
For i=0 to UBound(TextBox)-1
  TextBox(i).Text=""
next i
Il problema è che non funziona
mi dice che Ubound prevede una matrice
ma TextBox è una matrice.
Come posso fare?
Penso che il problema sia dovuto al fatto che non viene dichiarata sul
codice
perchè se dichiaro
Dim objTextBox() as TextBox
l'istruzione UBound(objTextBox) non mi da nessun errore.
Non saprei però come usare questa cosa.
Qualcuno mi sa dare qualche dritta?
Grazie infinite a tutti per gli eventuali aiuti e per la pazienza di tutti i
miei messaggi.
Maury
P.S.
Uso VB5 senza ServicePack.


Dim i%
For i=0 to TextBox.UBound -1
    TextBox(i).Text=""
next i
Ciao,
Fabrizio
Rimuovere NOSPAM per risposte private

 Quando nel corso dello sviluppo decido di inserire
l'undicesimo TextBox, devo andare a modificare anche il valore
sul ciclo o dei cicli se ne ho fatti altri.
[...]
Ok. Taglio il resto. Ma che giornatina per i server! Ho
scaricato la tua domanda dopo aver letto la risposta di
Fabrizio ed una risposta fuori thread, ma non credo c'entrino
i server, di Granata Crescenzo con subj "Costante" che voleva
essere una replica a Fabrizio. Boh?
Concordo con Granata Crescenzo sull'indicazione relativa alle
costanti pero`, essendo una replica a Fabrizio che propone
Dim i%
For i=0 to TextBox.UBound -1
    TextBox(i).Text=""
next i
c'e` qualcosa che non quadra quando scrive:
"Ma al posto di i% non usi una costante e' la cosa + logica ed
efficace"
Poi ci sei tu che dichiari, chiaro e tondo:
"P.S.
Uso VB5 senza ServicePack."
Ed io domando (perche' non lo so: uso VB4):
Con VB5 e` possibile usare la forma:
    TextBox.UBound
?
Credo di no. Se le cose stanno cosi` ti mostro come mi
comporto di solito in questi casi:
    ' Dichiaro delle costanti per ciascun controllo
    ' della matrice:
    Private Const mc_intTXTPIPPO    As Integer = 0
    Private Const mc_intTXTPLUTO    As Integer = 1
    Private Const mc_intTXTPAPERINO As Integer = 2
    Private Const mc_intTXT_COUNT   As Integer = 3
    ' E le uso nel modo che avrai gia` intuito:
    Dim i%
    For i = o To mc_intTXT_COUNT -1
    ' ecc.
Il vantaggio di questa scrittura sta ne fatto che quando vuoi
inserire un controllo basta scrivere:
    Private Const mc_intTXTTOPOLINO As Integer = 3
    Private Const mc_intTXT_COUNT   As Integer = 4
A colpo d'occhio ti accorgi se e` tutto a posto. E puoi anche
facilmente modificare l'ordine: basta che i numeri siano in
bell'ordine: 0, 1, 2, 3, 4...
In piu`, nel resto del codice e` molto piu` semplice e
leggibile scrivere, per esempio:
    Let Text1(mc_intTXTPLUTO).Text = ...
in quanto quelle costanti le trovi elencate nella lista
comesichiama che mentre digiti ti propone costanti,
proprieta`, metodi...
--
Ciao.
Maurizio

 fatti altri.
Dim i As Integer
For i = 0 To txtTextBox.Count - 1
    txtTextBox(i).Text = ""
Next
Ciao
Faber

     TextBox.UBound
Non so, in VB6 e' automaticamente disponibile quando un oggetto e parte di un vettore.
--
Ciao,
Fabrizio
ICQ           14842802                   Rimuovere NOSPAM per email private


