Newsgroup: it.comp.lang.visual-basic
Titolo: Validazione inputs

Qualcuno conosce un buon metodo per validare il testo libero inserito in una
serie di TextBox?
Mi spiego meglio: nello sviluppo di programmi gestionali dove c'e` da
acquisire nome, cognome, ecc., in quale evento conviene testare la validita`
del testo digitato?
Se uso il LostFocus posso trovarmi in loop con i campi sottostanti.
Io avrei un' idea che centralizza tutte le validazioni e volevo esporla in
un articolo di giornale, ma vorrei prima sapere se esistono idee migliori
della mia.
Grazie a tutti.
=============================
Riccardo Bartolini
Loc. Valle di Lazzaro 226
57037 Portoferraio
Email: 
r...@elbalink.it
=============================
--
Automatic posted from [195.110.108.6]
via Mailgate Server - 
http://www.mailgate.org

Io lo faccio nel lostfocus che avviene prima del GotFocus del controllo
successivo. Quindi se si applica il metodo setfocus al controllo da validare
nel caso in cui la validazione non sia andata non dovrebbero esserci
problemi...
"Rik Bartolini" ha scritto nel messaggio
<01bd80b3$a7db2460$LocalHost@rik>...


 della mia.
Inizia con l'esporre la tua.....
Hi,Cioa
Ettore   By -MES-

Se uso il LostFocus posso trovarmi in loop con i campi sottostanti.
Il problema del LostFocus si ha solo se cerchi di ridare immediatamente il
focus al controllo precedente; secondo me sarebbe meglio semplicemente
avvertire l'utente che il dato non è valido (scrivendoglielo
di fianco, facendo diventare il testo o il background di un altro colore: i
metodi possono essere tanti).
In un articolo abbastanza interessante di qualche mese fa su VBPJ l'autore
consigliava di usare una macchina di stato ed un timer.
Il concetto era che all'utente veniva inibita la capacità di procedere oltre
la form (per esempio disabilitando il pulsante di conferma) fino a quando
non fossero soddisfatte tutte le condizioni. Il controllo delle condizioni
veniva fatto periodicamente, pilotato da un controllo timer messo sulla form
(
p.es
. ogni mezzo secondo).
Ciao,
   <--< Nik >-->

Grazie a tutti.
Io utilizzo un controllo sull' evento click di un tasto di conferma, se uno
dei campi non č valido visualizzo un messaggio di errore e tramite SETFOCUS
rimando il cursore sul campo errato.
ciao a presto
--
"Baby, vieni qui che ti devo parlare da vicino..."
----------------------------------------------------------
Night Eagle ti aspetta su:              U_/
http://space.tin.it/io/mzugar/
       / R
----------------------------------------------------------
Togliere 'FUCKSPAM' per le risposte

della mia.
Diciamo che il problema che hai posto deve essere affrontato ed analizzato
sotto piu' di un aspetto:
- evento ( o combinazione di eventi, che č meglio !? ) utili ad effettuare
la validazione.
- Posizionamento del codice di codifica ( o meglio "ingegnerizzazione"
dell'interfaccia di una applicazione ).
Per il primo punto vedrei bene, l'utilizzo dell'insieme degli eventi
- Keypress
- Keydown
- Change
- LostFocus
In questo modo, diventa possibile anche implementare una sorta di maschera
che valida durante la digitazione il dato. Inoltre č possibile evitare il
problema del rimbalzo del focus fra due campi consecutivi che contengono
dati NON validi.
E', inoltre possibile, continuare ad utilizzare il copia ed incolla che
troppo spesso ho visto disattivare perchč causa principale di grosse
anomalie.
- Per il secondo punto invece, premettendo che trovo discutibile la
soluzione con timer e "macchina a stati", vedo bene l'implemetazione di una
Super Textbox (VB5) che racchiuda al suo interno il codice di validazione,
semplificando notevolmente il suo utilizzo. Soluzione che pero' puo'
risultare pesante in termini di risorse di sistema. Quindi la migliore
soluzione ( a mio avviso ) diventano le "CLASSI VISUALI".
-----------------------------------------------------------------------
-----------------------------------------------------------------------
 Dini Daniele                   MailTo:
d.d...@esa-group.it
  Progettista Software
  Analista Programmatore
 ESA Software S.p.A.            
http://www.esa-group.it
 via Draghi, 39                 tel.: +39 541 368.111
 47900 Rimini (ITALY)           fax : +39 541 368.268
-----------------------------------------------------------------------
-----------------------------------------------------------------------

.............



Io metto tutto il codice di validazione in una funzione che chiamo
prima di scrivere i dati e che provvede a fornire gli eventuali
messaggi di errore.
Un vantaggio rispetto al lostfocus è che si è insserito un dato non
corretto in un campo si può premere il pulsante Annulla per
abbandonare tutto senza che il programma protesti che i dati non vanno
bene.
Il problema del lostfocus è che non sai dove è andato a finire il
focus: se hanno premuto annulla non si dovrebbero dare messaggi di
errore, dato che tanto si butta via tutto. L'evento lostfocus verrebbe
invece attivato, rendendo idrofobo l'utente, a meno di fare
contorsionismi vari.
Uso il lostfocus solo quando è necessario elaborare subito i dati, ad
esempio se si deve cercare un nominativo tra tutti quelli che iniziano
come specificato nel TextBox.
Ciao
--------------------------------------------------------------------
Fulvio Senore
Eliminate "zz" dall'indirizzo e-mail per scrivermi (spammers...)
Remove "zz" from e-mail address to write me (spammers...)
--------------------------------------------------------------------