Newsgroup: it.comp.lang.visual-basic
Titolo: Collection e proprietà text

Ciao a tutti,
per adesso i miei programmi che hanno una serie di tipo:
Txt1 con Index da 0 a 12
txt2 con Index da 0 a 20
ecc.
Per le txt che contengono campi data o decimal ho dovuto usare del codice
messo nel keypress, lostfocus o gotfocus.
Volevo sapere se fosse possibile:
1) Definirmi una proprietà delle textbox che assegno a runtime o in
progettazione del tipo: txt1(0).proprietà=string o =date o =decimal.
Non importa che funzioni autonomamente, a me servirebbe solo per pulire il
codice in modo da fare tipo.
Select case txt1(index).proprietà
    case data
        'la gestisco come data
    case decimal
        'la gestisco come decimal
end select.
In questo modo se aggiungo una text o faccio qualche modifica non devo
cambiare il codice in 3/4 posti.
2) Non ho ben presente l'uso delle collection, ma mi pare sia tipo un
vettore di oggetti, quindi se io all'avvio carico tutto sulla collection in
teoria non dovrei neanche più scrivere il codice del punto 1) distinto per
txt1, per txt2 e per tutte quelle che ho.
Quindi potrei fare tipo
Evento keypress di txt1:
    call controllo (txt1(index))
end sub
Sub Controllo (txt as textbox)
  Select case collection DI txt1(index).proprietà
    case data
        'la gestisco come data
    case decimal
        'la gestisco come decimal
  end select.
end sub
E' possibile fare una cosa del genere? In questo modo mi toglierei tutto il
codice dalle varie Keypress, LostFocus e Got Focus, che se ho tipo 10
matrici di txt (txt1,txt2....txt10) non sarebbe certo male.
Grazie a tutti :D

 ha scritto nel messaggio
news:uLxZd.13043$Tm5.2...@twister2.libero.it...

premetto che non è che c'ho capito molto, però visto che non ha risposto
nessuno provo a dire la mia....
ti consiglio di usare la proprietà tag, metti 0 intero 1 stringa o come ti
pare a te, cosi per ogni textbox saprai il tipo di dato che contiene.
Ciao.

 contiene.
Ti ringrazio, cercavo proprio una proprietà da settare come volevo.
Ora mi guardo un po' l'uso delle collection per vedere se posso migliorare
ulteriormente.
Grazie :)


Guarda secondo me le collection non è che ti aiutano più di tanto, se
proprio vuoi fare una cosa fatta meglio potresti crearti un tuo controllo
(OCX) partendo dal textbox standard di vb, aggiungendo una proprietà ad
esempio TipoDati (Stringa, Numero, Data) ed il Check da fare nell'evento
LostFocus ad esempio, cosi faresti il lavoro una volta sola e potresti usare
il tuo controllo in tutti i tuoi progetti.
Putroppo Vb non permette di ereditare propretà e metodi dei controlli, se
cosi fosse il lavoro da fare sarebbe veramente poco....
Ciao!!!

 volta sola e potresti usare il tuo controllo in tutti i tuoi progetti.
Non l'ho mai fatto, ho visto che tipo di progetto devo fare per creare un
.ocx, ho provato a mettere una text e al suo lostfocus mettere
if isdate(text1) then
    text1="DATA"
else
    tesxt1="NON DATA
end if
Poi l'ho messo in un progetto, ma mi pare non funzioni :\
Ora vedo un po' :D

 ha scritto nel messaggio 
news:4PTZd.15059$Tm5.2...@twister2.libero.it...

fidati, deve funzionare, hai messo option explicit?
fai qualche prova se non va, sai dove chiedere aiuto :)
ciao.