Alle 18:32, giovedì 15 giugno 2006, Michele Zarri ha scritto:
> > > No, no ti assicuro che sono errori dell'utente.
> >
> > potresti fare un esempio?
>
> Ci provo. La finestra di dialogo di cui parlo serve per creare una nuova
> riga in una tabella. Il primo campo di tale riga ha un formato predefinito
> XX-YYnnnn dove XX-YY sono fissi e nnnn e' un numero di quattro cifre.
> Se l'utente mette per sbaglio una lettera o un numero troppo grande o altre
> stranezze non permetto che la finestra di dialogo si chiuda.
> Inoltre il numero immesso deve essere unico (lo uso come chiave in altre
> parti del programma), percio' prima di permettere la chiusura della
> finestra di dialogo faccio anche un controllo sul documento per verificare
> che il numero inserito non esiste.
> In entrambi i casi comunico all'utente (che poi sono io) il tipo di errore.
>
> Potrei risolvere il primo problema permettendo solo valori numerici nel
> campo di testo forzando la lunghezza massima a 4 

Esiste anche un controllo chiamato "pattern-field"

Questo controllo, se usato con criterio serve proprio per accertarsi che 
l'utente inserisca dati con un certo formato, riducendo al minimo il codice 
necessario per ulteriori verifiche


> ma per il secondo problema 
> non vedo soluzioni tramite programmazione.

proposta 1)

- Il pulsante OK è settato come "pulsante OK" 
- si parte con il pulsante OK disabilitato.

NB: In questo caso l'utente non può uscire schiacciando invio ma solo con esc 
o annulla.
In pratica non devi gestire nessun evento e operi in modo tradizionale

- Usi un campo pattern-field opportunamente settato per l'inserimento del 
dato. Ciò ti eviterà i controlli più banali sul formato.

- Nell'evento TextModified del pattern-Field fai la verifica del codice 
inserito

- Se la verifica viene superata allora abiliti il pulsante OK, diversamente lo 
disabiliti. In pratica:
CommandButtonOK.Enabled = ControlloCodice(sCod)

proposta 2)
Ancora meglio sarebbe generare il codice in automatico e non tediare per nulla 
l'utente.


ciao
Paolo M









---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a