VB I controlli di VB6 pg8
Iscrizione su Internet
Per fissare i concetti esposti in questo articolo impostiamo un esempio che sfrutti gli elementi descritti fino ad ora. Si vuole disegnare un form di iscrizione ad un generico servizio di internet in cui inserire i campi anagrafici (alcuni dei quali obbligatori) ed un tasto per inviare l’iscrizione. Supponiamo che i campi nome e cognome siano obbligatori ed impostiamo inoltre un controllo sull’età perché sia un campo numerico e che non superi 120 (credo che come età massima per utilizzate Internet vada più che bene). Il disegno dell’interfaccia dovrà prevedere

• tre TextBox in cui inserire nome, cognome ed età (TxtNome, TxtCognome, TxtEta)

• due pulsanti per confermare o no l’iscrizione (CmdOK,CmdAnnulla).

• tre etichette per indicare il significato dei campi, una etichetta che spiega come utilizzare il servizio e le etichette con l’asterisco per indicare quali campi sono obbligatori.

Si deve ora scrivere il codice necessario alla convalida dei dati nell’evento Validate dei tre TextBox. Per il nome e cognome controlliamo in un’istruzione If .. Then che la stringa contenuta nei TextBox non sia vuota, in caso contrario visualizziamo un messaggio per avvisare che i campi sono obbligatori e poniamo Cancel=True per far sì che il focus rimanga sul TextBox.

Private Sub TxtNome_Validate(Cancel As Boolean)
'viene controllato se il campo non contiene nessun carattere
   If TxtNome.Text = "" Then
       MsgBox "Il campo Nome è Obbligatorio", 
vbExclamation, "Attenzione"
       Cancel = True
   End If
End Sub

Private Sub TxtCognome_Validate(Cancel As Boolean)
'viene controllato se il campo non contiene nessun carattere
   If TxtCognome.Text = "" Then
       MsgBox "Il campo Cognome è Obbligatorio", 
vbExclamation, "Attenzione"
       Cancel = True
   End If
End Sub


Per il TextBox dell’età si devono effettuare due controlli:

• Il testo immesso deve essere un valore numerico, per questo usiamo la funzione IsNumeric (espressione), già illustrata nei precedenti articoli che restituisce True se il valore dell’espressione può essere valutato come un numero.

• Se il valore di TxtEta è un numero allora si deve controllare che sia compreso tra 0 e 120 con un’ulteriore istruzione If, in caso contrario viene visualizzato un messaggio di avviso:

Private Sub TxtEta_Validate(Cancel As Boolean)
'viene controllato che il campo sia numerico
If IsNumeric(TxtEta) Then
    'viene controllato se l'età e compresa tra zero e 120
    If TxtEta < 0 Or TxtEta > 120 Then
        MsgBox "L'età deve essere compresa tra 0 e 120", 
vbCritical, "Attenzione"
        Cancel = True
    End If
Else
    MsgBox "Il campo deve essere numerico", vbCritical, 
"Attenzione"
    Cancel = True
End If
End Sub


Infine nell’evento click dei due pulsanti si dovrà scrivere il codice necessario per l’iscrizione al servizio o per il ritorno alla finestra precedente, ma questo sarà argomento di altri articoli, per adesso limitiamoci a scrivere il codice per visualizzare i messaggi di avvenuta o annullata iscrizione.
Private Sub CmdAnnulla_Click() 'viene visualizzato il messaggio di iscrizione annullata MsgBox "Iscrizione Annullata", vbInformation, "OK" End Sub Private Sub CmdOk_Click() 'viene visualizzato il messaggio di avvenuta iscrizione MsgBox "Iscrizione avvenuta con successo", vbInformation, "OK" End Sub
Da notare che se impostiamo il pulsante CmdOk come pulsante di default, nel momento in cui l’utente preme il tasto invio, quando si trova in uno dei tre TextBox, non viene attivato l’evento Validate, questo purtroppo è un bug di VB6 per questo in questi casi è consigliabile non impostare pulsanti di default.


In queste pg ci siamo occupati dei controlli  più usati nelle applicazioni evidenziando, con un’applicazione di esempio, i concettii. Prossimamente continueremo il viaggio all’interno degli altri controlli di Visual Basic.