Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Corso di Visual Basic: esercizi svolti

In questa pagina verranno proposti alcuni esercizi per prendere maggiore confidenza con i concetti esaminati durante il corso.
Un'attento studio di questi esercizi a difficoltà crescente può rivelarsi molto utile per mettere a punto tecniche di programmazione sempre più efficaci.

Esercizio 1:

1) Visualizzare all'avvio di Form1 una finestra di messaggio con il testo "Vuoi proseguire?" dotata di pulsanti come mostra la seguente figura:


2) alla pressione del pulsante Si l'utente deve poter visualizzare una seconda finestra di messaggio con il testo "Hai proseguito". Alla pressione del pulsante 'No' l'applicazione dovrà essere chiusa ed alla pressione di 'Annulla' la finestra deve scomparire ma l'applicazione non deve chiudersi.

Soluzione:
Siccome la finestra di messaggio deve essere visualizzata non appena l'applicazione viene avviata è necessario inserire la funzione MsgBox che mostra tale finestra, nella sottoprocedura Form_Load che contiene le istruzioni eseguite dal programma alla sua apertura.
La funzione MsgBox è composta di cinque parametri dei quali solitamente ne vengono utilizzati tre: il testo da visualizzare (nel nostro caso "Vuoi proseguire?", una o più costanti che adesso vedremo ed infine il nome dell'applicazione che può essere indicato o meno (la figura sopra è stata ottenuta senza indicare il nome dell'applicazione così Visual Basic ha assegnato il nome "Progetto1").
La serie di costanti da indicare specifica infine il tipo di finestra di messaggio: vbYesNo include due pulsanti: 'Si' e 'No', vbOkCancel include 'Ok' e 'Annulla' e così via. Ma possono essere impostate anche le icone che appaiono sulla sinistra indicando ad esempio vbCritical oppure vbInformation. E'utile quindi sperimentare uno dopo l'altro queste costanti.
Inoltre è possibile unire le costanti attraverso l'operatore '+': ad esempio vbYesNo & vbCritical visualizza una finestra con i pulsanti 'Si' e 'No' con l'icona della x bianca su sfondo rosso (che corrisponde ad un errore critico).
Per ottenere il risultato della figura sopra bisognerà quindi indicare:

Private Sub Form_Load()
MsgBox "Vuoi proseguire?", vbYesNoCancel + vbExclamation
End Sub

Adesso bisogna considerare la gestione dei vari casi 'pressione dei tasti'. Per far questo si deve assegnare ad una variabile (di tipo Integer) il risultato della funzione. Questa variabile indicherà quale tasto ha premuto l'utente. Con l'assegnazione ad una variabile del risultato di una funzione, si deve racchiudere quest'ultima entro parentesi tonde:

Private Sub Form_Load()
Pulsante_Premuto = MsgBox("Vuoi proseguire?", vbYesNoCancel + vbExclamation)
End Sub

E adesso la gestione dei casi vera e propria: risulta più utile utilizzare una forma del tipo Select Case ma siccome non è stata ancora introdotta nel corso si può vedere come gestire la situazione con If...End If: Diciamo che se l'utente ha premuto il pulsante 'Si' (la costante che indica solo il pulsante 'Si' è vbYes) si visualizza una seconda finestra di messaggio col testo "Hai proseguito" questa volta senza indicare la funzione MsgBox tra parentesi tonde in quanto non c'interessa sapere quale pulsante ha premuto l'utente su questa seconda finestra di tipo semplice:

If Pulsante_Premuto = vbYes Then
MsgBox "Hai proseguito"
End If

Il secondo caso è la pressione del tasto 'No': utilizziamo allora la costante vbNo ed inseriamo un End per chiudere completamente l'applicazione:

If Pulsante_Premuto = vbNo Then
End
End If

ultimo caso: pressione del tasto 'Annulla' (costante vbCancel). L'applicazione rimane attiva ma non succede niente; semplicemente usciremo dalla sottoprocedura in modo indolore:

If Pulsante_Premuto = vbCancel Then
Exit Sub
End If

Codice completo per questo primo esercizio:

Private Sub Form_Load()
Pulsante_Premuto = MsgBox("Vuoi proseguire?", vbYesNoCancel + vbExclamation)
If Pulsante_Premuto = vbYes Then
MsgBox "Hai proseguito"
End If
If Pulsante_Premuto = vbNo Then
End
End If
If Pulsante_Premuto = vbCancel Then
Exit Sub
End If
End Sub

Esercizio 2:

1) Alla pressione di un pulsante denominato Command1 visualizzare la finestra CommonDialog Apri che visualizzi tutti i file di testo .txt e visualizzare in una finestra di messaggio il nome del file aperto:

Soluzione:
Prima di tutto bisogna importare il controllo Microsoft CommonDialog x.0 attraverso la finestra 'Componenti' cliccando su Progetto nella barra menu principale e selezionando la voce Componenti:


In secondo luogo si dovrà importare sul piano un controllo CommandButton. Una volta eseguite queste due operazioni nella sottoprocedura che individua l'evento 'pressione del pulsante CommandButton1' ossia Command1_Click si dovrà richiamare la finestra 'Apri' utilizzando il metodo ShowOpen dell'oggetto CommonDialog:

Private Sub Command1_Click()
CommonDialog1.ShowOpen
End Sub

Adesso ci si deve preoccupare dei filtri che permettano di visualizzare (e quindi di aprire) un solo tipo di file. Per questo esempio ci servirà impostare un filtro per l'estensione .txt. Questo viene fatto attraverso la proprietà Filter del controllo CommonDialog. E' però necessario specificare il filtro prima di aprire la finestra 'Apri' col metodo ShowOpen:

Private Sub Command1_Click()
CommonDialog1.Filter = "Documenti di testo (*.txt)|*.txt"
CommonDialog1.ShowOpen
End Sub

La parte prima del simbolo "|" indica il testo che viene visualizzato nella casella 'Tipo file' mentre la seconda è il filtro vero e proprio.
E' inoltre possibile indicare vari tipi di file ad esempio quelli di testo e quelli con estensione .doc:

CommonDialog1.Filter = "Documenti di testo (*.txt)|*.txt|Documenti Word (*.doc)|*.doc"

Per visualizzare il nome del file si dovrà utilizzare la proprietà FileName all'interno di una funzione MsgBox:

MsgBox CommonDialog1.FileName

Codice completo per questo esercizio:

Private Sub Command1_Click()
CommonDialog1.Filter = "Documenti di testo (*.txt)|*.txt"
CommonDialog1.ShowOpen
MsgBox CommonDialog1.FileName
End Sub

Esercizio 3:

1) Dichiarare una matrice di 10 variabili alle quale assegnare con un unico ciclo For...Next un valore pari al doppio di quello della variabile precedente ad esempio: Variabile1 = 2, Variabile2 = 4, Variabile3 = 6 eccetera.

2) Visualizzare in una finestra di messaggio la media delle variabili.

Soluzione:
Dichiariamo prima di tutto la variabile che conterrà il valore medio e la matrice di variabili:

Private Sub Form_Load()
Dim TotVar As Integer 'il valore medio
Dim Variabile(1 To 10) As Integer 'la matrice non dinamica
End Sub

Quindi per i che va da 1 all'elemento massimo della matrice (definito con la funzione Ubound), assegnamo il valore alla variabile i:

For i = 1 To UBound(Variabile())
Variabile(i) = i * 2

ed aggiorniamo la variabile TotVar aggiungendo il valore dell'i-esima variabile, chiudendo il ciclo con un Next i:

TotVar = TotVar + Variabile(i)
Next i

e finalmente si può visualizzare la media:

MsgBox TotVar / UBound(Variabile())

Codice completo per questo esercizio:



Private Sub Form_Load()
Dim TotVar As Integer 'il valore medio
Dim Variabile(1 To 10) As Integer 'la matrice non dinamica
For i = 1 To UBound(Variabile())
Variabile(i) = i * 2
TotVar = TotVar + Variabile(i)
Next i
MsgBox TotVar / UBound(Variabile())
End Sub


Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it