Visual Basic Simple
Corso base - Lezione 4
Sincronizza Indice
Sincronizza Indice
Scarica il progetto
Scarica il progetto
Scarica il testo dell'articolo
Testo dell'articolo
Stampa l'articolo
Stampa l'articolo

È giunto il momento di trasformare in pratica tutto quello che abbiamo visto nelle lezioni precedenti. Qui comincia la parte veramente divertente di questo linguaggio.Figura 1

Riprendiamo il progetto iniziato nella lezione 1 e rivisto nella lezione 2.

Non appena si presenta l'IDE con il nostro progetto, la prima cosa che salta all'occhio è la parte centrale con quella finestra vuota, la cui barra del titolo segnala Form1.

Quello spazio è un Form , una finestra per l'utente del programma. Sarà la nostra area di lavoro. Sopra il nostro form inseriremo tutti i componenti per fare un programma che faccia qualcosa di utile e soprattutto, lo faccia bene.


Figura 2Diamo uno sguardo anche alla finestra delle proprietà , vista nella lezione 2.
Nella figura a lato possiamo notare due aree: quella in alto identifica l'oggetto preso in esame nell'area sottostante, area che evidenzierà alcune proprietà.

Nel nostro caso in alto abbiamo l'oggetto Form1, istanza della classe Form. Subito sotto abbiamo un elenco di proprietà legate a questa istanza.

La prima proprietà è Name, che identifica univocamente un oggetto. All'interno di uno stesso progetto non può esistere un form il cui nome è uguale ad un altro oggetto, sia esso form o altro. poiché faremo uso di un solo form, per ora, lasciamo il nome standard fornito: Form1. Questo sarà il nome attraverso il quale opereremo su questa particolare istanza di form.

Subito sotto la proprietà Name ne troviamo altre che regolano il comportamento e lo stile del nostro form. Nota che ci sono le freccette per salire e scendere nell'elenco, indice che queste non sono le uniche proprietà a disposizione. Abbiamo evidenziato l'ultima proprietà visibile, cioè la proprietà Caption. Questa identifica il titolo presente sopra la nostra finestra, come possiamo vedere nella prima figura e come vediamo spiegato nella casella subito sotto la nostra proprietà. Prova a modificare il valore della proprietà Caption da Form1 a "Visual Basic è semplice" e vedrai subito il cambiamento nel titolo del form.

L'oggetto form ha decine di proprietà da impostare. Caption è solo una d'esse. Vediamo per esempio altre due proprietà, poste un po' più in basso di quella appena vista, cioè le proprietà MinButton e MaxButton. Queste due proprietà regolano la presenza e l'attivazione dei pulsanti di riduzione ad icona e di ingrandimento del form. Vediamo come stanno le cose inizialmente.

Figura 3 Come si nota, entrambe le proprietà sono impostate a True (VERO) e sul form appaiono entrambi i pulsanti di riduzione ad icona e di ingrandimento della finestra. Figura 4

Figura 5Proviamo a vedere che succede se impostiamo entrambe le suddette proprietà a False (FALSO).

Ecco che i due pulsanti di ridimensionamento sono spariti.

Se avessimo, invece, impostato soltanto una delle due proprietà a False, i pulsanti sarebbero rimasti entrambi, ma quello la cui proprietà è stata impostata a False sarà disabilitato. Visibile ma non cliccabile.

Per avere un'idea più chiara della classe Form clicca sulla sezione Controlli Thunder e poi Form. Se vuoi andare direttamente a quella pagina clicca qui.


Introduciamo un nuovo tipo di oggetto, anzi di classe. La classe Label è presente nella casella degli strumenti con il pulsante

Per creare un'istanza della classe Label (quindi un oggetto Label) basta cliccare due volte sulla sua icona oppure cliccare solo una volta sull'icona e tracciare un rettangolo sul form, tenendo il tasto sinistro del mouse premuto.

Verrà creato un oggetto di nome Label1 (il nome, lo ricordiamo, è visibile nella finestra delle proprietà vista prima). A che serve una Label? In inglese significa etichetta, e serve a scrivere delle informazioni (in genere visibili) sopra un form. Potrebbe fungere da istruzioni sull'uso delle funzioni della finestra.

Per scrivere le informazioni sull'oggetto Label, impostare la proprietà Caption con la frase che si intende far apparire in essa. Se la frase è troppo lunga potrebbe non entrare nella Label. In tal caso basta cliccare una volta sull'oggetto di cui modificare le dimensioni (la nostra Label1), ed assicurarsi che compaiano i quadratini di ridimensionamento come mostrato nella figura 6.
Fatto questo prendere uno dei quadratini e trascinarlo fino a formare la dimensione desiderata. I quadratini per tutta l'operazione di trascinamento spariranno e al loro posto si evidenzierà il bordo, come mostrato nella figura 7. Quando ottenuta la forma desiderata, lasciare il tasto del mouse, et voilà, il gioco è fatto.

Figura 6
Figura 6

Figura 7
Figura 7
Figura 8
Figura 8

Se si vuole evitare di dover ridimensionare ogni volta la Label si può impostare la proprietà Autosize (Autodimensionamento) a True. Così facendo, ogni volta che si modifica il contenuto della label, ossia la proprietà Caption, il rettangolo prenderà la forma giusta per far visualizzare il testo.

Se si vuole spostare la posizione di una label si può afferrare la nostra Label1 e trascinarla a spasso per lo schermo e rilasciarla dove vogliamo che essa si posi.


È giunto il tempo di provare il nostro programma e vedere nei fatti cosa viene presentato all'utilizzatore del programma.

Per passare dalla fase di progettazione alla fase di esecuzione premere il tasto F5 oppure aprire il menu Esegui e cliccare la voce Avvia. In pochi istanti apparirà il programma vero e proprio. In questa fase potrete notare che non è più possibile prendere gli oggetti sul form e trascinarli, oppure modificarli.

Infatti il programma, una volta terminato e compilato per renderlo utilizzabile su ogni computer, non può essere più modificato. L'unica possibilità di effettuare modifiche al programma è data dal possedere i codici sorgente, i codici in linguaggio Visual Basic. Un normale utilizzatore normalmente riceve una copia del programma funzionante, ma non i codici sorgente, escludendo quindi la possibilità di modificare il programma.

Per chiudere il programma e ritornare a Visual Basic premere la X in alto a destra del nostro Form1 (mi raccomando, non il pulsante di chiusura di VB, ma quello del Form).


Sarebbe molto stupido e del tutto inutile un programma statico, non mutabile ed incapace di rispondere alle azioni del suo utilizzatore. Per questo è possibile ripetere le stesse operazioni effettuate nella fase di progettazione, al momento in cui è necessario.

Per esempio possiamo fare in modo che ogni volta che l'utente clicca su una parte del Form1, all'interno della nostra Label1 viene mostrata la data e l'ora attuali.

Per far questo ci dobbiamo ricollegare al concetto di evento , visto nella lezione precedente. Nel nostro caso vogliamo sfruttare l'evento che scatta al momento in cui l'utente clicca con il mouse sul Form.

Innanzitutto abbandoniamo la finestra di progettazione e passiamo alla finesta del codice, la vera parte della programmazione Visual Basic. Aprire il menu Visualizza e scegliere la voce Codice (la prima) oppure premere il tasto F7.

Si aprirà la videata bianca del codice, come appare nella figura 9.

Figura 9
Figura 9

Possiamo dividere questa finestra in tre parti:

  1. La casella in alto a sinistra indica gli oggetti presenti nel form.
  2. La casella in alto a destra riporta gli eventi corrispondenti all'oggetto selezionato nella casella di sinistra.
  3. L'area principale dove si scrive il codice.

Se premiamo sulla casella di sinistra ci vengono riportati tutti gli oggetti del nostro form, cioè il Form stesso e la Label1 che abbiamo inserito in esso.

Se siete stati attenti avrete notato che nella casella di sinistra non ci viene riportato il nome del form, cioè Form1, ma soltanto Form. Tuttavia questa stranezza non intende cambiare il nome al form. Se vogliamo riferirci al nostro Form1, dovremo scrivere sempre Form1. Se all'interno di Form1 intendiamo impostare la proprietà Caption potremo utilizzare Form1.Caption, oppure Me.Caption. Infatti ogni form, all'interno di se stesso si chiama Me.

Clicchiamo sulla casella degli oggetti e scegliamo l'oggetto Form. Ci verrà in automatico creata una funzione di nome Form_Load. Se adesso guardiamo sulla casella di destra troviamo scritto Load. Ebbene questo significa che la funzione che il computer ci ha generato in automatico è la funzione collegata all'evento Load.

Ma la funzione che serve a noi è quella collegata all'evento del click del mouse sul Form, non quella collegata al caricamento del form (Load). Per cui clicchiamo sulla casella di destra e cerchiamo l'evento Click (in alto). Alla selezione dell'evento viene creata in automatico la funzione Form_Click.

Le funzioni collegate agli eventi hanno questa struttura:

  1. Private Sub NomeOggetto_NomeEvento(parametri)
  2. End Sub

Nel nostro esempio specifico abbiamo infatti:

  1. Private Sub Form_Click()
  2. End Sub

Torniamo al nostro esempio. Vogliamo scrivere nella etichetta Label1 la data e l'ora del momento in cui l'utente clicca sul form. Innanzitutto, come detto prima, per impostare il testo di una Label bisogna impostare la proprietà Caption. Per cui scriviamo all'interno della funzione legata all'evento l'istruzione di aggiornamento. L'istruzione che ci dà la data e l'ora corrente è Now.

Ecco la funzione completa per effettuare il nostro lavoro:

  1. Private Sub Form_Click()
  2.     Label1.Caption = Now
  3. End Sub

Eseguiamo il programma e proviamolo per vedere l'effetto dell'utilizzo dell'evento Click.

Per ritornare alla finestra di progettazione del form aprite il menu Visualizza e cliccate la voce oggetto oppure premete la combinazione di tasti SHIFT+F7.

Non appena finite di lavorare con questo progetto ricordatevi di salvarlo, ma stavolta il processo di salvataggio sarà più facile della volta precedente poiché il progetto ha già un nome ed i files sono già stati impostati. In pratica non vi accorgerete neanche che ha salvato.

Questo era un ottimo esempio per vedere il funzionamento delle proprietà a Run Time, infatti durante l'esecuzione del programma non possiamo sfruttare la finestra delle proprietà e non possiamo stabilire a priori il momento in cui l'utente cliccherà sul form.

Mauro Scaini
25 Ottobre 2000

Scarica il progetto
Scarica il progetto
Scarica il testo dell'articolo
Scarica il testo dell'articolo
Stampa l'articolo
Stampa l'articolo
Torna alla terza lezione Vai alla quinta lezione