Visual Basic Linguaggio di programmazione per lo sviluppo
Visual Basic Linguaggio di programmazione per lo sviluppo di applicazioni da eseguire in un qualunque ambiente Microsoft Windows. Linguaggio di programmazione • ad alto livello • interpretato (ambiente interattivo) • visuale • guidato dagli eventi
Visual Basic VISUALE!! • Text Box - permette di inserire e visualizzare dati (stringhe, interi, double, etc) • Label - permette di visualizzare l’output e descrivere gli oggetti • Command Botton – permette l’esecuzione di eventi • Check. Box • Option. Button, ecc.
Processo di programmazione in Visual Basic • Progetto dell’applicazione • Creazione dell’interfaccia grafica • Aggiunta del codice agli elementi visivi (interpretazione e compilazione) • Esecuzione • Debugging – correzione degli errori
Processo di programmazione in Visual Basic Un programma è costituito da • controlli (ciascuno rappresentato da un’icona) • istruzioni L’interazione dell’utente con un qualunque controllo rappresenta un evento (es. click del mouse) Ad ogni controllo sono associati diversi eventi • Il codice di un’applicazione VB è suddiviso in singoli blocchi definiti routine o sottoprogrammi. • Una routine di eventi contiene il codice eseguito quando viene generato un evento.
Definizioni di base • Form: indicativo di finestra e comprende barra del titolo, barra del menù… • Controlli: sono le icone con le quali l’utente interagisce ad es. pulsanti di comando, etichette, caselle di testo… Form e controlli sono indicati come oggetti
Definizioni di base A ciascun oggetto possono essere associate: • Proprietà – le proprietà rappresentano gli attributi che definiscono l'aspetto e varie funzionalità di ogni controllo; ad es. , la proprietà Name indica il nome con cui quel controllo è identificato all'interno del codice; le proprietà Height e Width indicano l'altezza e la larghezza del controllo, ecc. • Metodi – corrispondono ad istruzioni di programma • Eventi - "situazioni" generate dal controllo quando si verificano certe condizioni (es. click con il mouse)
Definizioni di base • Un programma in VB può essere visto come un insieme di oggetti, dove ad ogni oggetto è associato un insieme di proprietà che descrivono il comportamento dell’oggetto stesso. • Gli oggetti sono oggetti grafici (bottoni, finestre, text box, label…) • Il codice viene associato ad una o più azioni che vengono compiute sull’oggetto: click del mouse, apertura di una finestra, pressione di un tasto ecc. (programmazione visuale)
Il Form Fine • Non appena Visual Basic viene avviato, al centro dello schermo compare una finestra grigia completamente vuota denominata Form • Uno o più form possono costituire una applicazione. Sarà il form ad ospitare tutti gli elementi grafici che fanno parte dell'applicazione. Inserire Oggetti (Controlli) nel Form • Gli elementi grafici da aggiungere all'interno del form, possono essere selezionati dall’apposita Casella degli strumenti e si chiamano Controlli. • Ogni singolo elemento che costituirà la nostra applicazione possiede delle proprietà, liberamente personalizzabili da parte del programmatore che consentono di regolarne l’aspetto grafico ed il comportamento.
Ambiente di lavoro Visual Basic Fine
Fine Le classi di oggetto (controlli) Esempi di controlli molto comuni che si trovano nella casella degli strumenti: le caselle di testo (le celle che consentono di inserire del testo) i pulsanti (chiamati in Visual Basic Command Button) le etichette (ovvero Labels in VB) le barre di scorrimento (scrollbars) check-box (consentono di spuntare una scelta) option button ecc.
Fine Le proprietà I controlli così come il form stesso, hanno delle proprietà che consentono di caratterizzarne in modo molto semplice e rapido l'aspetto grafico e non solo. . . Per visualizzare la finestra delle proprietà relative all'oggetto selezionato è sufficiente premere il tasto F 4 oppure scegliere dal menù Visualizza la voce Finestra proprietà.
I tipi di dati Fine costanti e variabili. • E' possibile pensare ad esse come a contenitori in cui si trovano delle informazioni, cioè dei valori. • Costanti e variabili sono riferimenti a locazioni di memoria in cui sono salvati determinati valori. • Non ci interessa sapere qual è l'esatto indirizzo della memoria che contiene questi valori: è Visual Basic che si occupa di andare a recuperare nella memoria il valore associato alla variabile o alla costante che stiamo utilizzando. • La differenza tra costanti e variabili : Ø le costanti una volta impostate non sono più modificabili Ø le variabili possono essere modificati durante l’esecuzione del programma.
Fine La distinzione dei tipi di dato stringhe (sequenze di caratteri) numeri; questi ultimi si dividono ulteriormente a seconda che siano numeri interi oppure reali. Questa distinzione è molto importante, perché ogni tipo di dato ha una dimensione (cioè un'occupazione di spazio in memoria) diversa ad esempio: • un numero intero occupa 2 byte • un numero decimale a precisione singola occupa 4 byte • a doppia precisione 8 byte. • stringa 10 byte + numero dei caratteri
Fine Tabella tipo di dati Tipo di dato Dimensione in memoria Intervallo Boolean 2 byte True (-1) o False (0) Integer 2 byte Da -32. 768 a 32. 767 Long 4 byte Da -2. 147. 483. 648 a 2. 147. 483. 6477 Single 4 byte Da -3, 402823 E 38 a -1, 401298 E-45 per valori negativi; da 1, 401298 E-45 a 3, 402823 E 38 per valori positivi Double 8 byte Da -1, 79769313486232 E 308 a 4, 94065645841247 E-324 per valori negativi; da 4, 94065645841247 E 324 a 1, 79769313486232 E 308 per valori positivi String 10 byte + lunghezza stringa (10 byte + numero caratteri) Da 0 a circa 2 miliardi (intero) (intero lungo) (virgola mobile a precisione semplice) (virgola mobile a precisione doppia)
Tipi di Dati • Integer (Valori interi -32, 768 to 32, 767) Es: 0, 123, -4534 • Single (valori reali da -3, 402823 E 38 a -1, 401298 E-45 per valori negativi; da 1, 401298 E-45 a 3, 402823 E 38 per valori positivi) • Double (Valori reali da -1. 79769313486232 e+308 a -4. 94065645841247 E-324 negativi 4. 94065645841247 E-324 a 1. 79769313486232 e+308 positivi Es: 0, 12. 34, 0. 123 E+123 • String Es: “Ciao”, “Inserisci il primo numero” , “”
Operatori • + - * / Mod (es. Mod 2 = 0) • Su Stringhe: + oppure & Es: “Visual” & “Basic” = Visual. Basic
Fine Dichiarazione di Costanti Le costanti si dichiarano in questo modo: Const PI = 3. 1415 Const Nome As String = "Maria" Const è una parola chiave riservata di VB che si usa per definire una costante. è il nome che si sceglie di attribuire alla costante. • Nella scelta dei nomi (sia delle costanti, delle variabili, ma anche delle procedure, delle funzioni e dei controlli, che vedremo più avanti), è necessario seguire alcune regole. • I nomi non devono essere più lunghi di 40 caratteri, non possono iniziare con un numero né contenere spazi e caratteri come ? , !, : , • Visual Basic, a differenza di altri linguaggi come il C o Java, non fa differenza tra maiuscole e minuscole.
Fine Dichiarazione di Variabili Una sintassi analoga è quella che permette di dichiarare le variabili: Tipo di variabile Dim Numero. Utenti As Integer Dim Nome, Cognome As String Dim Importo As Single Dim Totale As Double Dim Contatore As Integer In questo caso si usano le parole chiave Dim … As per indicare al compilatore che quella che si sta per definire è una variabile. Parola chiave + nome variabile + tipo variabile
Fine Realizzazione di un progetto La realizzazione di un progetto in Visual Basic è suddivisa in tre fasi: 1. 2. 3. Creazione dell’interfaccia utente impiegando gli oggetti di Visual Basic all’interno del Form Impostazione delle proprietà degli oggetti che costituiscono l’interfaccia utente Aggiunta del codice di programmazione per uno o più oggetti dell’interfaccia utente (es. Command. Button)
Esercizio
Il mio primo programma Private Sub Command 1_Click() Label 1. Caption = “Buongiorno“ End Sub
Programma on/off Private Sub Command 1_Click() Label 1. Caption = "Acceso" End Sub Private Sub Command 2_Click() Label 1. Caption = "Spento" End Sub
Programma nome Private Sub command 1_click() Dim messaggio As String messaggio = Input. Box ("Inserisci nome: ") Label 1. Caption = "Ciao " + messaggio End Sub
Calcolo dell’area e perimetro di un rettangolo • • Leggi da input l’altezza Leggi da input la base Calcola l’area e il perimetro Dai in output i risultati
Conversione lire in euro • Leggi da input l’importo in lire • Calcola il corrispettivo in euro • Dai in output il risultato
Progetto: Calcolatrice Fase 1: Costruzione interfaccia utente Fine
Fine
Funzioni di Input e Output • Input. Box(Prompt, Title, default_text, x-position, y-position) Es: a = Input. Box(“Inserire Primo Numero? ", “Numero", “Inserire qui il primo numero!", 500, 700) a= Input. Box(“Numero”) • Scelta= Msg. Box (Prompt, Style Value, Title dove style value puo’ essere: 0 vb. Ok. Only. Ok button 1 vb. Ok. Cancel. Ok and Cancel buttons etc e scelta puo’ essere uguale a: 1 Hai premuto OK! 2 Hai premuto Cancel! • Print )
Fine Le procedure e le funzioni Come vedremo meglio più avanti, praticamente tutto il codice di un programma Visual Basic è contenuto all'interno di funzioni e procedure (chiamate genericamente routine). La differenza fondamentale tra procedure e funzioni è che le seconde possono restituire dei valori, ad esempio il risultato di un'elaborazione oppure un valore di ritorno che determina se la routine ha avuto successo, mentre le procedure no. Iniziamo a vedere la dichiarazioni di una Sub <nome>([Parametro As <Tipo>, …]) … End Sub procedura:
Fine Le procedure e le funzioni Tutte le dichiarazioni di procedura iniziano con la parole chiave Sub. Segue il nome della routine, che deve rispettare le convenzione analizzate precedente a proposito delle costanti Il nome deve essere seguito da parentesi, al cui interno è possibile inserire i parametri (opzionali) richiesti della procedura; non c'è limite al numero di parametri che si possono definire. Tali parametri possono essere visti come variabili (ritorneremo tra poco su questo punto). End Sub sono parole riservate di VB che indicano la fine di una procedura.
Fine Le procedure e le funzioni Vediamo ora un esempio di procedura. Supponiamo di dover calcolare l'area di un cerchio: la formula è sempre la stessa, quello che cambia è solo la misura del raggio. Per tale motivo, invece di riscrivere ogni volta la formula, possiamo scrivere una procedura che richieda come parametro proprio la lunghezza de lraggio: Sub Area. Cerchio(Raggio As Double) … End Sub
Fine Supponiamo di voler scrivere un programma Supponiamo ancora di voler scrivere un programma che chiede all'utente la lunghezza del raggio e sulla base di questa calcola l'area del cerchio. Dopo aver definito la procedura come sopra descritto, ci basterà richiamarla passandogli come argomento la lunghezza del raggio; ad esempio: Area. Cerchio 5. 4 Area. Cerchio 11 Area. Cerchio 6. 9 Queste sono tre chiamate alla procedura con parametri diversi. Nel primo caso, Raggio varrà 5. 4, nel secondo 11 e nel terzo 6. 9.
Scriviamo il programma Fine Ecco quindi come potrebbe risultare la procedura Area. Cerchio completa: Sub Area. Cerchio(Raggio As Double) Msg. Box Raggio * 3. 14 End Sub In questo esempio è stata usata la funzione Msg. Box, che visualizza un messaggio in una finestra di dialogo e attende che l'utente prema un tasto. A questo punto, utilizzando le tre chiamate sopra definite, otterremo questi risultati:
Vediamo ora le funzioni Fine Passiamo ora ad analizzare le funzione, osservando che per esse vale la maggior parte delle considerazioni che già si sono fatte per le procedure. La dichiarazione di una funzione è questa: Function <nome>([Parametro As <Tipo>, …]) [As <Tipo>] … End Function Come si vede, in questo caso invece della parola chiave Sub si usa Function. La cosa nuova, cui si è già accennato, è che le funzioni possono restituire un valore. Nella dichiarazione, infatti, possiamo notare che, dopo l'elenco (opzionale) dei parametri c'è un ulteriore argomento opzionale, ancora una volta As <Tipo>: esso indica il tipo di dato restituito dalla funzione.
Vediamo ora le funzioni Fine Come si è già visto per le variabili, se non viene specificato tale parametro il valore restituito sarà di tipo Variant. Riprendiamo l'esempio di prima e trasformiamo la procedura Area. Cerchio in una funzione: Function Area. Cerchio(Raggio As Double) As Double Area. Cerchio = Raggio * 3. 14 End Function Quando si richiama questa funzione, Area. Cerchio contiene il valore dell'area del cerchio.
Fine Fase 2: Impostazione proprietà Controllo Proprietà Impostazione Form 1 Name frm. Calcolatrice Caption “Calcolatrice” Name lbl. Primo. Numero Caption “Primo Numero” Name lbl. Secondo. Numero Caption “econdo Numero” Name lbl. Risultato Caption “Risultato” Name lbl. Ris Caption (Vuota) Border. Style 1 - Fixed Single Back. Color Bianco Name txt. Primo. Numero Text (Vuota) Name txt. Secondo. Numero Text (Vuota) Label 1 Label 2 Label 3 Label 4 Text 1 Text 2
Fine Controllo Proprietà Impostazione Command 1 Name cmd. Somma Caption “&Somma” Name cmd. Sottrai Caption “S&ottrai” Name cmd. Dividi Caption “&Dividi” Name cmd. Moltiplica Caption “&Moltiplica” Name cmd. Esci Caption “&Esci” Command 2 Command 3 Command 4 Command 5
Fase 3: Scrittura del codice di programmazione Private Sub cmd. Somma_Click() lbl. Ris. Caption = v. Val(txt. Primo. Numero. Text) + Val(txt. Secondo. Numero. Text) End Sub Private Sub cmd. Sottrai_Click() lbl. Ris. Caption = Val(txt. Primo. Numero. Text) – Val(txt. Secondo. Numero. Text) End Sub Private Sub cmd. Dividi_Click() lbl. Ris. Caption = Val(txt. Primo. Numero. Text) / Val(txt. Secondo. Numero. Text) End Sub Private Sub cmd. Moltiplica_Click() lbl. Ris. Caption = Val(txt. Primo. Numero. Text) * Val(txt. Secondo. Numero. Text) End Sub Private Sub Cmd. Esci_Click() End Sub Fine
Progetto: Accendere e spegnere una lampadina Fase 1: Costruzione interfaccia utente Fine
Fine Fase 2: Impostazione proprietà Controllo Proprietà Impostazione Form 1 Name Caption frm. Interruttore L' Interruttore windows. State 2 -Maximized Name lbl. Nome Caption “Inserisci nome” Fore. Color blu Name lbl. Messaggio Caption (Vuota) Font Algerian Name txt. Nome Text (vuota) Appearance 1 -3 D Back. Color rosa Border. Style 1 - Fixed Single Font Arial Black Name fra. Colore Caption “Colore Testo” Fore. Color blu Label 1 Label 2 Text 1 Frame 1
Fine Fase 2: Impostazione proprietà Controllo Proprietà Impostazione Option. Button 1 Name Opt. Nero Caption “Nero” Name Opt. Blu Caption “Blu” Fore. Color Blu Name Opt. Rosso Caption “Rosso” Fore. Color Rosso Name Opt. Giallo Caption “Giallo” Fore. Color Giallo Name Opt. Verde Caption “Verde” Fore. Color Verde Option. Button 2 Option. Button 3 Option. Button 4 Option. Button 5
Fine Fase 2: Impostazione proprietà Controllo Proprietà Impostazione Image 1 Name img. Immagine 1 Border. Style 1 - Fixed Single Picture Mouse. Icon c: …. graphicsiconsmisc c: …. datiBMPcomuniHand-L Mouse. Pointer 99 -Custom Stretch True Visible False Name img. Immagine 2 Border. Style 1 - Fixed Single Picture Mouse. Icon c: …. graphicsiconsmisc c: …. datiBMPcomuniHand-L Mouse. Pointer 99 -Custom Stretch True Visible False Image 2
Fine Fase 2: Impostazione proprietà Controllo Proprietà Impostazione Command 1 Name cmd. Cancella Caption “Cancella” Name cmd. Stampa Caption “Stampa” Name cmd. Esci Caption “Esci” Command 2 Command 3
Fase 3: Scrittura del codice di programmazione Private Sub cmd. Cancella_Click() txt. Nome. Text = "" lbl. Messaggio. Caption = "" opt. Nero. Value = False opt. Blu. Value = False opt. Rosso. Value = False opt. Giallo. Value = False opt. Verde. Value = False txt. Nome. Set. Focus End Sub Private Sub cmd. Esci_Click() End Sub Private Sub cmd. Stampa_Click() Print. Form End Sub Fine Private Sub img. Immagine 1_Click() img. Immagine 2. Visible = True img. Immagine 1. Visible = False lbl. Messaggio. Caption = "Accendi la luce " & txt. Nome. Text End Sub Private Sub img. Immagine 2_Click() img. Immagine 2. Visible = False img. Immagine 1. Visible = True lbl. Messaggio. Caption = "Spegni la luce " & txt. Nome. Text End Sub Private Sub opt. Blu_Click() lbl. Messaggio. Fore. Color = vb. Blue End Sub
Fase 3: Scrittura del codice di programmazione Private Sub opt. Giallo_Click() lbl. Messaggio. Fore. Color = vb. Yellow End Sub Private Sub opt. Nero_Click() lbl. Messaggio. Fore. Color = vb. Black End Sub Private Sub opt. Rosso_Click() lbl. Messaggio. Fore. Color = vb. Red End Sub Private Sub opt. Verde_Click() lbl. Messaggio. Fore. Color = vb. Green End Sub Fine
Progetto: Browser Fase 1: Costruzione interfaccia utente Fine
Fine Fase 2: Impostazione proprietà Controllo Proprietà Impostazione Form 1 Name frm. Browser Caption “Browser Drive 1 Name drv. Unita Dir 1 Name dir. Cartelle File 1 Name fil. Archivi Pattern “*. bmp; *. wmf; *. ico” Name img. Immagini Strech True Border. Style 1 - Fixed Single Image 1
Fase 3: Scrittura del codice di programmazione Fine Private Sub dir. Cartelle_Change() fil. Archivi. Path = dir. Cartelle. Path End Sub Private Sub drv. Unita_Change() dir. Cartelle. Path = drv. Unita. Drive End Sub Private Sub fil. Archivi_Click() img. Immagini. Picture = Load. Picture(fil. Archivi. Path & "" & fil. Archivi. File. Name) End Sub
Fine
Visual Basic Le caratteristiche fanno di Visual Basic un linguaggio di programmazione estremamente versatile e facile da usare sono due: Interfaccia Grafica (GUI) di progettazione Non appena si avvia VB si può osservare una finestra, il form, che rappresenta la finestra della nostra applicazione. Per inserire elementi all'interno del form (i cosiddetti controlli), quali pulsanti, caselle di testo, etichette, è sufficiente selezionarli all'interno della Casella degli strumenti e trascinarli sul form stesso: il controllo selezionato verrà posizionato nel punto esatto che si è deciso. Linguaggio guidato dagli eventi Con questo termine si intende che l'elemento che sta alla base del linguaggio è l'evento, cioè, più in generale, l'azione: Ø un evento è il click dell'utente su un pulsante, Ø la digitazione in una casella di testo, Ø la selezione di un comando da menu, ecc.
- Slides: 51