Visual Basic: L’ambiente di lavoro
I controlli
Selezionare e
disegnare i
controlli sul
Form
Nome del progetto
Progetto
(elementi)
Un progetto
è composto
da form e da
moduli
Proprietà
(proprietà
dell’oggetto
che avete
selezionato:
form o
controllo)
Form
Lo spazio su cui
inserire i controlli.
Dove apparirà
il form quando
lancerete il
programma
L’interfaccia grafica
Visual Basic è un linguaggio di programmazione che nasce da un’evoluzione del Basic. Un Basic reso “visual”. Visual vuol dire visivo,
che si usa in modo interattivo, cliccando con il mouse (che in QBasic non viene mai utilizzato), usando le finestre, ecc. ecc.
La prima cosa da fare, quindi, sarà creare un ambiente visuale per il nostro utente. Un ambiente in cui lui effettuerà le operazioni
necessarie a far “girare” il programma. Questo ambiente si chiama Interfaccia grafica ed è la prima cosa a cui pensare quando si crea
un progetto in Visual Basic.
L’interfaccia è fatta dal Form, la nostra “pagina in bianco”,
e dai controlli, che vanno inseriti sul form.
Per inserire un controllo lo si seleziona e poi lo si disegna
sul form, cliccando con il tasto sinistro del mouse e
trascinando.
Il form
i controlli
Visual Basic 1
I controlli e le loro proprietà
I primissimi controlli
Il Pulsante (Command). E’ il controllo che fa succedere le cose con l’evento Click.
Può avere su di sè una didascalia (Caption), che dice a cosa serve.
L’Etichetta (Label). Serve a scrivere del testo sul Form. Il testo dell’etichetta
dipende dalla proprietà Caption, così come avveniva per il pulsante.
Le proprietà del controllo
Un controllo ha tante proprietà: il colore, le dimensioni, la forma, la posizione sullo schermo, il carattere, quello che c’è scritto
sopra...
Per selezionare un controllo devo cliccare sopra di esso con il mouse. Il controllo apparirà evidenziato.
Quando seleziono un controllo, nella Finestra delle Proprietà apparirà l’elenco delle proprietà di questo controllo.
Proviamo ad inserire un pulsante
Anche il nome di un controllo è una proprietà. Quando inserisco un
pulsante sul form il programma gli attribuisce automaticamente un nome:
in questo caso Command1.
Vedete anche che la proprietà BackColor (colore di sfondo) è impostata
sul grigio.
La proprietà Caption (didascalia), quello che appare scritto sul pulsante,
corrisponde alla parola “Command1”.
Per modificare le proprieta si interviene direttamente nella barra delle
proprietà, scrivendo o scegliendo nella casella a destra del nome della
proprietà.
Proviamo a modificare le seguenti proprietà del pulsante:
(Name) - scrivete: CmdProva e date invio
Caption - scrivete: Io sono un pulsante
Font - scegliete :Times New Roman Grassetto 10 punti
Height: scrivete: 600 + Invio
Left: scrivete: 100 + Invio
Width - scrivete 3000 + Invio
Vedrete questo pulsante....
Proviamo ad inserire una etichetta
Vediamo che quello che ha scritto al suo
interno corrisponde alla proprietà Caption
Basta scrivere qualcosa di diverso nella
Finestra delle proprietà, nella casella a
destra della casella Caption e vedremo
cambiare anche il testo dell’etichetta sul
form.
Proviamo a cambiare anche altre proprietà
(Name):
diamo all’etichetta il nome : Lblprova (digitate il nome + invio)
Caption:
“ora sono bianca”
Backcolor:
<selezionate il bianco >
Forecolor:
<selezionate il rosso>
Top:
1000
Visual Basic 2
Il Basic
La sintassi di Visual Basic
Visual Basic è un linguaggio Basic, che ha moltissime delle istruzioni che avete imparato con QBasic (IF ...THEN, DO ...LOOP).
Visual Basic utilizza le variabili proprio come QBasic.
Con il Visual Basic si possono fare tutte le cose che si facevano con QBasic: calcoli, problemi, disegni, ecc.
Ma all’inizio faremo soprattutto una cosa: useremo il Basic per cambiare le proprietà dei controlli.
La sintassi Basic per modificare la proprietà Caption del pulsante Command1 è, ad esempio:
Command1.Caption = ”ciao”
Osservate con
attenzione.....
Command1.Caption = “ciao”
NomeControllo.NomeProprietà = ValoreProprietà
Se la cosa non vi è chiara, provate a pensare le cose in questo modo:
Pensate a un compagno (ad esempio Andrea), alle sue proprietà (ad esempio: ColoreCapelli) e al valore che
questa proprietà può assumere:
diventerebbe....
Andrea.ColoreCapelli = neri
NomeControllo.NomeProprietà = ValoreProprietà
Oppure, se pensiamo all’età di Marina, che ha 12 anni, possiamo dire:
diventerebbe....
Marina.Età = 12
NomeControllo.NomeProprietà = ValoreProprietà
A cosa può servire questo? Ad esempio a cambiare la proprietà di un oggetto durante un programma.
Immaginiamo un programma che, quando premo un pulsante, cambia il colore dei capelli di Andrea.
All’inizio, disegnerò il controllo Andrea sul form e imposterò la sua proprietà Capelli su “castani” , selezionando il valore nella Finestra
delle Proprietà. Poi costruirò un programma che, quando premo su un pulsante, cambia la proprietà Capelli da “castani” a “neri”.
Gli eventi
Come faccio a dire al programma quando deve cambiare il colore dei capelli di Andrea? Ci vuole un momento particolare...
La cosa più comune è cliccare su un pulsante.
Allora preparerò un pulsante e, quando cliccherò su di esso, il colore dei capelli di Andrea cambierà.
Il Clic sul pulsante si chiama evento. In Visual Basic di eventi ce ne possono essere molti, dal cliccare su qualcosa al muovere
semplicemente il mouse. Li vedremo poi.
Ora basta ricordare che, quando progetto l’interfaccia grafica di un programma, devo prevedere un controllo con cui far succedere le
cose, come se fosse l’interruttore che fa partire il gioco, l’interruttore che dà corrente al treno elettrico, ecc.
E’ a questo controllo che dovrò associare il Codice Basic, che contiene le istruzioni che dicono cosa deve succedere (ad esempio
che il colore dei capelli di Andrea cambia....).
Per associare il codice Basic a un pulsante, basta selezionarlo e fare doppio clic su di esso.
Si aprirà una schermata in cui scrivere il codice.
Ma partiamo da un esempio pratico.
Visual Basic 3
Un primo esercizio
Un primissimo esercizio:
Preparate un form che contenga una etichetta e un pulsante.
Durante la preparazione dell’interfaccia
grafica dobbiamo cambiare le proprietà
di alcuni controlli.
All’etichetta cambieremo:
• il nome (Proprietà Name) in “lblscritta”
• la scritta (Proprietà Caption) in “ciao”
Al pulsante cambieremo:
• il nome (Proprietà Name) in “Cmdpremi”
• la scritta su di esso (Proprietà Caption) in “premi qui”
Adesso faremo in modo che, quando premiamo sul pulsante, la scritta sull’etichetta lblscritta cambi e, da “ciao”, diventi
“come stai?” Dovremo cambiare una proprietà, quindi, senza farlo direttamente sulla Finestra Proprietà, ma con del codice
Basic associato al clic sul pulsante. Anche se cambia la scritta sull’etichetta, quello che scatena il cambiamento è il clic sul
pulsante ed è proprio sul pulsante che dovremo inserire il codice Basic.
Per inserire il codice Basic, fate doppio clic sul pulsante. Apparirà una schermata come questa:
Il codice va inserito nella sottoprocedura Private_Sub Cmdpremi_Click() dopo queste parole e prima delle parole End Sub .
Riflettiamo: dobbiamo cambiare la proprietà Caption del controllo lblscritta, come quando dicevamo Andrea.Capelli=neri.
Allora scriveremo il seguente codice: lblscritta.Caption=”come stai?”
Ora proviamo a lanciare il programma e vediamo se funziona:
Per far girare il programma clicchiamo sul tasto “Play” che troviamo sulla
barra in alto.
(Possiamo anche premere il tasto F5).
Play
Apparirà il vostro form con il pulsante in mezzo.
Proviamo a cliccare sul pulsante.
Se non abbiamo fatto errori la didascalia dell’etichetta cambierà in “come stai?”.
Per terminare il programma clicchiamo sul tasto Fine della barra in alto
Visual Basic 4
Pausa
Fine
Salvare il vostro lavoro
I progetti di visual basic sono composti da diversi file, che vanno tutti salvati separatamente dando loro un nome.
Al momento del salvataggio vengono salvati:
- il file del Progetto, che contiene le informazioni complessive, con estensione “.vbp”
- i file dei form, uno per ogni form che avete utilizzato, con estensione “.frm”
Per salvare, andate sul menu File e selezionate la voce Salva Progetto (o Salva Progetto con nome...).
Quindi, sempre sul menu File, selezionate Salva Form.... per ognuno dei form che avete creato.
Il programma vi aiuta visualizzando il nome che avete dato al form attualmente aperto. Se lo avete chiamato frmciccio, apparirà “Salva
Frmciccio...”
Date dei nomi ai vostri file! Non accontentatevi di Progetto1 o Form1! Correte il rischio di cancellare il lavoro che avete fatto l’ora
prima o la settimana scorsa.
Creare un programma eseguibile
I progetti di Visual Basic possono essere dei programmi che funzionano senza bisogno di aver prima aperto Visual Basic. Possono
cioè diventare dei veri e propri file eseguibili, con estensione “.exe”.
Per creare un programma eseguibile, prima di chiudere il vostro progetto in Visual Basic, andate sul Menu File e selezionate Crea
<Nome Progetto>.exe
Verrà creato un programma eseguibile che potrete lanciare da qualsiasi cartella o da un altro computer.
AIUTOOO! Cosa faccio se.......?
Se non vedo più il form
Clicco su Form nella finestra Progetto in alto a destra, oppure clicco con il tasto destro del
mouse sulla pagina del codice Basic e scelgo Nascondi dal menu che appare.
Se non vedo più il codice Faccio doppio clic sul controllo che mi interessa, oppure clicco con il tasto destro del mouse e
scelgo Visualizza codice dal menu che appare .
Se non vedo più la barra dei controlli
Clicco su Menu Visualizza e scelgo Casella degli strumenti
Se non vedo più la casella Progetti
Clicco su Menu Visualizza e scelgo Gestione progetti
Se non vedo più la Finestra Proprietà
Clicco su Menu Visualizza e scelgo Finestra Proprietà o premo F4
Se non vedo più la Finestra Disposizione Form
Se non riesco a scrivere il codice Basic
Clicco su Menu Visualizza e scelgo Finestra Disposizione Form
Controllo che il progetto non sia in esecuzione. Premo il tasto STOP sulla
barra in alto.
Visual Basic 5
Fasi di lavoro
Riassumiamo le fasi di lavoro per la creazione di un programma in Visual Basic
1. Creazione dell’interfaccia grafica
1.1 Disponete sul Form i controlli che vi servono
1.2 Date ai controlli un nome che vi ricordi a cosa servono.
Il nome del controllo si abbrevia e si aggiunge una parola che ricorda l’azione del controllo.
Il controllo Command1 su cui clicco, diventerà CmdClicca.
L’etichetta Label1, su cui leggo una risposta, diventerà LblRisp.
1.3 Cambiate il colore, il tipo di carattere, eccetera, secondo i vostri gusti
2. Scrittura del codice Basic
2.1 Assegnate il codice Basic ai controlli che rispondono agli eventi. NON A TUTTI I CONTROLLI. Sono
a quelli che servono.
3. Verfica del funzionamento.
4. Salvataggio del programma.
I progetti in Visual Basic sono formati da un file in cui è memorizzata la struttura di tutto il progetto e un file per ogni
Form che avete utilizzato. Date ai form dei nomi che abbiano un significato. Non lasciateli come Form1 (!!!!)
5. Creazione di un programma eseguibile.
Dal Menu File, scegliete l’opzione Crea <Nomeprogetto>. exe
Potrete creare un piccolo programma che verrà eseguito senza bisogno di passare per Visual Basic. Per lanciarlo basterà
cliccare sul suo nome.
Progettare il programma
Utilizziamo delle schede per progettare il programma per avere le idee chiare prima di metterci a lavorare sul computer.
1
Sul form disegnate i controlli che
compongono l’interfaccia grafica
2
Per ogni controllo specificate il nome che
gli avete attribuito e le proprietà che
vengono cambiate nella Finestra delle
Proprietà, durante la progettazione
dell’interfaccia grafica. Specificate i valori
di partenza delle proprietà, anche se poi
vengono cambiati tramite codice Basic
dal programma.
3
Descrivete a parole quello che succede
nel programma. Ad es: “Cliccando sul
pulsante CMDVai appare la scritta “buona
notte” sull’etichetta LblNotte”
4
Stabilite quale evento manda in
esecuzione il codice, su quale controllo si
agisce e quale codice Basic deve essere
letto:
Es: Controllo CmdVai Evento Click
Codice Basic:
LblNotte.Caption = “Buona Notte”
FATE ATTENZIONE AI NOMI DEI CONTROLLI !!!
NEL CODICE BASIC USATE GLI STESSI NOMI CHE AVETE
ASSEGNATO IN FASE DI PROGETTAZIONE GRAFICA
Visual Basic 6
La proprietà Visible
Visibili ed invisibili
Tutti i controlli di Visual Basic hanno la proprietà Visible, che può essere impostata su True (vero) o False ( falso)
Quando la proprietà è su True, i controlli sono normalmente visibili sul Form. Quando la proprietà è impostata su False, i
controlli ci sono, ma non si vedono. Possiamo utilizzare questa proprietà per far apparire o scomparire dei controlli durante
il programma, magari cliccando su un pulsante. Es: Label1.Visible = False ‘ Fa scomparire l’etichetta
I controlli che devono “comparire” devono avere la proprietà impostata su False al momento della progettazione grafica.
Si vedranno sullo schermo durante la progettazione ma non si vedranno quando si lancia il programma per provarlo.
Esercizio 1
Esercizio 2
Create un form in cui ci sia solo un pulsante. Al clic sul pulsante,
questo scomparità. In pratica, faremo in modo che la sua
proprietà Visible assuma il valore False.
(Es: Command1.Visible=False)
Create un Form che contiene un pulsante con la scritta “prova”.
Quando l’utente clicca sul pulsante questo sparisce e ne appare
un altro con la scritta “riprova”.
Cliccando su di esso l’utente lo vedrà sparire (anche questo!) e
apparire un’etichetta con la scritta “Era ora!”
Attenzione che il primo evento è associato al primo pulsante, il
secondo evento al secondo pulsante.
L’evento Mouse Move
L’evento Mouse Move attiva il codice Basic
quando il mouse “urta” un controllo, come nel
caso in cui il mouse passa sopra a una
etichetta o a un pulsante.
L’evento Mouse Move non appare
immediatamente se fate doppio clic su un
controllo. Per selezionarlo dovete cercarlo sul
Menu a tendina a destra, nella schermata del
Codice.
La schermata del codice può essere attivata anche cliccando su un controllo con il tasto destro del mouse e scegliendo “Visualizza
Codice”
Primo Esercizio
Uno scherzo carino
Creare un form in cui ci sia un pulsante che ha scritto su di sè
“Vieni qui”.
Quando l’utente si muove con il mouse sul pulsante (evento
Mouse Move del pulsante) la scritta del pulsante cambia in
“cliccami”
Quando l’utente clicca sul pulsante (evento Click del pulsante)
appare un’etichetta con scritto “ciao”
Facciamo un piccolo scherzo, utilizzando l’evento MouseMove.
Preparate un’interfaccia grafica come quella che appare sotto.
Quando l’utente passa con il mouse su uno dei due tasti,
cercando di cliccare, le didascalie debbono invertirsi, quella del
tasto di destra dovrà apparire sul tasto di sinistra e viceversa.
La posizione di un controllo sul form
La posizione sul form di un controllo è definita da due proprietà:
La proprietà TOP che indica quanto è distante dal bordo
superiore
La proprietà LEFT che indica quanto è distante dal bordo
sinistro
Le distanze sono misurate in twip, un’unità di misura un
po’ speciale.
Per vedere quanto è largo il vostro form andate a leggere
le proprietà del form ScaleHeight (altezza) e
ScaleWidth (larghezza) sulla Finestra delle Proprietà
Un altro scherzo: “Prendimi!”
Posso usare queste proprietà per uno scherzetto divertente.
Creo un pulsante con la scritta Premimi
Quando mi avvicino con il mouse (evento MouseMove) farò in modo che la posizione del pulsante, sia dal bordo superiore che dal
bordo sinistro venga trovata a caso, con l’istruzione RND (per i numeri casuali), scegliendo tra un valore fra 0 e 5000
Private Sub Command1_MouseMove
Command1.Top = Rnd * 5000
Command1.Left = Rnd * 5000
End Sub
Visual Basic 7
La casella di testo
Casella di testo (Text Box). L’utente può scrivere nella casella, parole, numeri, ecc. Sostituisce l’istruzione INPUT .
Quando progetterò il mio programma, gli dirò di guardare cosa l’utente ha scritto nella casella di testo e lo metterà in una
variabile. Il testo scritto dall’utente corrisponderà alla proprietà Text
Ciò che scrive l’utente è inserito nella casella di testo sotto forma di stringa alfanumerica e quindi deve essere utilizzato in
una variabile del tipo A$.
Es: A$ = TextRisposta.Text
Potrò fare tutti i controlli tipici delle stringhe alfanumeriche (es: IF TextRisposta.Text = “Napoli” THEN....)
Se voglio chiedere all’utente un numero, dovrò convertire la stringa alfanumerica in un valore numerico. Per fare questa
operazione si utilizza la funzione VAL.
La funzione VAL
In QBasic
La sintassi della funzione VAL è:
NomeVariabileNumerica = VAL (NomeVariabileStringa)
Immaginiamo che la variabile Numero$ contenga le cifre “153” (uno, cinque, tre). Per farle diventare il numero 135
(centotrentacinque), e utilizzarlo per dei calcoli, utilizzerò la funzione VAL:
A = VAL(Numero$) ‘ metti nella variabile numerica A il valore delle cifre contenute
nella variabile stringa Numero$
In Visual Basic
Immaginiamo di dover leggere un valore numerico da una casella di testo. Utilizzeremo la funzione VAL in questo
modo:
A = VAL(Text1.Text) ‘ Metti in A il valore delle cifre contenute nella stringa che si
trova nella proprietà Text della casella di testo Text1
Esercizio 1: La capitale della Spagna
Create un form con una etichetta (Label1), che pone una domanda “Quale è la capitale della Spagna?”, e due etichette, una la con
scritta “Giusto” e una con “Sbagliato”.
Cambiate il nome delle etichette (Proprietà Name) in LblGiusto e LblSbagliato. Rendetele entrambi invisibili.
Inserite un pulsante di comando e una casella di testo (TextRisp)
Associate al clic sul pulsante il codice che controlla la risposta che l’utente ha inserito nella casella di testo.
IF TextRisp.Text = “Madrid” THEN
LblGiusto.Visible = True
ELSE
LblSbagliato.Visible =True
END IF
Esercizio 2: Il vostro giocatore preferito
Il programma chiede all’utente di inserire il nome di un giocatore.
Associate alla pressione del pulsante un semplice controllo che faccia apparire l’etichetta “Grande” se il giocatore che piace all’utente
è lo stesso che piace a voi. In tutti gli altri casi apparirà l’etichetta “scarso”
Se l’utente prova a digitare un nome diverso, senza far ripartire il programma, capiterà che rimangano visibili due etichette,con
messaggi contrastanti.
Per evitare questo, oltre al pulsante “controlla” che avvia il controllo sul nome, prevedete un pulsante “riprova” che faccia sparire
entrambi le etichette e faccia apparire nella casella di testo la frase “scrivi qui”.
Per fare questo dovrete inserire una riga di codice che stabilisce che la proprietà della casella di testo deve essere una certa frase:
Text1.Text= ”scrivi qui”
Se date l’istruzione Text1.Text=”” la casella di testo si svuoterà.
Esercizio 3: Il test di Inglese
Preparate un Form che ponga all’utente 3 domande del tipo: “Come si dice in Inglese .....”?
Per ogni domanda ci sarà una casella di testo in cui l’utente inserirà la risposta, un pulsante per avviare il controllo e due etichette
“OK” e “NO” che appaiono a seconda della risposta.
I controlli saranno associati ai pulsanti e non si limiteranno a dire all’utente se ha risposto bene, ma aumenteranno la variabile
Giuste se la risposta è esatta.
Un ultimo pulsante, al termine, permette all’utente di chiedere il punteggio.
Il codice associato all’ultimo pulsante guarderà che valore c’è nella variabile Giuste e visualizzerà sull’etichetta LblTotale il
punteggio ottenuto. (LblTotale.Caption = Giuste)
Visual Basic 8
Altri esercizi
Altri piccoli programmi per mettere a fuoco le cose che abbiamo già visto e per imparare un paio di funzioni in più
La calcolatrice
Preparate un’interfaccia grafica come quella che vedete a sinistra.
Vi sono due caselle di testo in cui l’utente inserirà i numeri da elaborare
Quattro pulsanti di comando, premendo i quali i numeri verranno sommati,
sottratti, moltiplicati o divisi.
Nell’etichetta a destra deve apparire il risultato.
Va ricordato che quello che inserite nelle caselle di testo sono stringhe e che
quindi il loro valore deve essere trasformato in numero, con la funzione VAL
Per la somma, ad esempio, dovrete fare qualcosa del genere:
a = Val(txtprimo.Text) + Val(txtsecondo.Text)
LblRisultato.Caption = a
Il cambia euro
Il prossimo programma cambia le lire in euro e gli euro in lire.
Come evento per il calcolo, questa volta, useremo l’evento
Modifica del testo nella casella di testo (Text_Change ).
Mentre l’utente inserirà il testo nella casella, quindi, verrà fatto
automaticamente il calcolo, il cui risultato apparirà sulla didascalia
(caption) dell’etichetta a destra.
Ricordate che per ogni Euro ci vogliono 1936,27 lire
Form colorati
Questo programma inizia con il form visualizzato sopra. Ad ogni pressione del tasto, apparirà un nuovo form, colorato con il colore
indicato. Sul form che appare ci sarà un tasto che permetterà di farlo scomparire.
Per creare un nuovo form si utilizza
l’istruzione “Inserisci Form” del
menu Progetto.
Dovrete crearne tre.
Per far apparire un form basterà
impostare su True la sua proprietà
Visible, per farlo scomparire basterà
impostare la proprietà Visible a
False.
Al tasto “Fine” faremo corrispondere
il codice “End” che metterà termine
al programma.
Visual Basic 9
Visual Basic: La programmazione ad eventi
Ora che ne sappiamo un pochino, facciamo una piccola riflessione,per chiarirci meglio le idee.
Programmazione ad eventi:
Nella programmazione procedurale (es: QBasic) esiste un’unica procedura complessiva che viene eseguita dal programma
dall’inizio alla fine.
Nella programmazione ad eventi si crea un “ambiente di lavoro” in cui vi sono tante sottoprocedure che reagiscono ad eventi
particolari prodotti dall’utente (es: pressione di un pulsante).
Nella programmazione di tipo “procedurale” la sequenza degli eventi è decisa dal programmatore, qui è decisa dall’utente.
Il programma in QBasic è fatto da una sola procedura che parte quando si
avvia il programma e termina con il programma
Nei programmi in Visual Basic le procedure (e il
codice Basic) sono associate alla pressione di
pulsanti o al realizzarsi di altri eventi.
Il programma termina quando
l’utente preme un pulsante o
clicca sulla X in alto a destra
L’istruzione INPUT è
sostituita dall’immissione di
dati in apposite caselle di
testo
L’istruzione PRINT è
sostituita dall’apparire
di numeri o parole su
apposite etichette
I controlli: i pezzi dell’Interfaccia grafica
I programmi creati con Visual Basic hanno la stessa ’Interfaccia
grafica di Windows: finestre, caselle di testo, barre, ecc....
L’evento più classico: il clic sul pulsante
Ogni elemento della finestra si chiama controllo.
Il Form è lo spazio su cui
si mettono tutti i controlli
Il pulsante (Command)
serve ad avviare una
procedura
Attraverso i controlli si attivano gli eventi.
L’evento più classico è il clic sul pulsante.
Quando si verifica un dato evento , vengono
eseguite le linee di programma ad esso
associate.
CLIC!!!
Le caselle di testo (Text
Box) servono a inserire
dei dati
Le etichette (Label)
servono a scrivere del testo
sul form
Visual Basic 10
Ogni controllo ha diverse
proprietà
(dimensioni, colore, tipo
di carattere, ecc ecc)
Frame, caselle di controllo e pulsanti radio
Il problema del tosacani
Le caselle di controllo e i pulsanti radio permettono di far scegliere all’utente dei valori predefiniti
Inserendo nel codice l’istruzione If...then ... Else potremo utilizzare i valori scelti dall’utente per inserirli nel nostro programma.
Disegnamo un’interfaccia di questo tipo
L’interfaccia mi fa già capire come è strutturato il
problema.
L’utente può scegliere tra vari servizi
Due tipi di lavaggio e due tipi di tosatura. In più, al costo
dei servizi già detti, si possono aggiungere accessori
acquistati.
Premendo il tasto Calcola verrà effettuata la somma dei
servizi scelti (il programma vero e proprio), e il totale
verrà visualizzato dall’etichetta Totale.
Il tasto Esci mi porterà alla fine del programma con
l’istruzione END.
Le caselle di controllo (Check)
Le caselle di controllo possono essere spuntate o non spuntate .
Quando una casella è spuntata, la sua proprietà Value diventa “1”, quando non è spuntata
diventa “0”.
Tramite codice posso controllare se la casella è spuntata e in tal caso memorizzare un
valore o fare un’operazione.
If ChkProfumo.Value = 1 Then
Accessori = Accessori + 8000
End If
I pulsanti Radio (Option)
I pulsanti radio si comportano più o meno come le caselle di controllo, solo che si
escludono l’un l’altro.
Se ne premo uno, si disattivano gli altri, eccetera.
Quando un pulsante è attivato, la sua proprietà Value diventa True, altrimenti è False
Attenzione quindi che Caselle di controllo e Pulsanti Radio hanno valori diversi
(1/0 per le caselle, True e False per i pulsanti)
Posso controllare lo stato di un pulsante con il codice Basic
If OptLavaNorm.Value = True then
Lavaggio = 10.000
End If
Il Frame
Il Frame è un riquadro che permette di visualizzare bene una parte dell’interfaccia. Ma
può fare di più.Visto che i pulsanti radio si escludono l’un l’altro, in teoria potrei
utilizzare una sola serie di pulsanti in tutto il form.
Se invece metto le serie di pulsanti in tanti frame ho la possibilità di utilizzarle
separatamente.
Salvare il progetto
Per salvare il vostro progetto in Visual Basic, dovete salvare tutti i “pezzi” che lo compongono: i vari form e gli eventuali file
di Modulo, quindi salvare il Progetto (che è un po’ l’indice che ricorda dove sono tutti i pezzi).
Date ai vari componenti un nome che li riconosca. In seguito potrete ricaricare il vostro progetto per correggerlo o
addirittura utilizzarne alcuni form per dei progetti nuovi.
Visual Basic 11
Visual Basic: moduli e variabili condivise
Il problema che affronteremo ora è più complesso: prevede l’utilizzo di più form, prevede che i risultati dei calcoli fatti su di un form
vengano utilizzati anche da un altro e prevede l’uso di un modulo.
I moduli
I moduli sono sottoprogrammi in Basic, nè più ne meno come i controlli. Possono far parte di un
progetto non appaiono sullo schermo.
Possono servire per far partire il programma, per fare dei calcoli complessi il cui risultato viene poi
inviato a un form oppure, come nel nostro caso, per dichiarare le variabili che devono valere per tutto il
progetto.
I moduli si inseriscono dal Menu Progetto/Inserisci modulo
Utilizziamo il modulo per “condividere” le variabili.
Il valore di una variabile utilizzata in un form non può
essere letto in un altro form, a meno che la variabile non
venga dichiarata come “condivisa”. Se non viene
effettuata questa operazione, per il secondo form il
contenuto della variabile è “0”.
Per condividere una variabile bisogna scrivere Public
NomeVariabile nella finestra (dichiarazioni) del modulo
che abbiamo creato
Esempio di variabili condivise. (da non usare per il
problema della pagina successiva....)
Utilizziamo il modulo per far partire il progetto
Normalmente il progetto parte dal Form1 oppure
dall’oggetto che viene indicato nella finestra Proprietà/
Proprietà di Progetto1.../Oggetto di avvio.
Noi decideremo di farlo partire dal modulo, creando una
sottoprocedura MAIN in cui diremo i form che vogliamo
visualizzare all’inizio
Per creare una sottoprocedura Main, andiamo sul
modulo e, nella finestra (generale), scriviamo “Sub
Main ()”. Apparirà automaticamente la dicitura “End
Sub”. Ora andiamo nel Menu Proprietà/Proprietà di Progetto1.../Oggetto di avvio e selezionamo la Sub Main come oggetto di avvio
Mostrare o non mostrare i form
Olte all’uso della proprietà Visible, è possibile far apparire o meno i form con le istruzioni
<NomeForm.Show> (per far apparire) e <NomeForm.Hide> (per far scomparire)
Es: FrmPrimi.Show ‘ fa apparire il form su cui ho elencato i primi piatti
Mostrare più di un form alla volta.
Lo posso fare e posso anche stabilire la posizione dei form sullo schermo. Per fare questo utilizzerò
la finestra disposizione form in basso a destra, che mostra il punto in cui appaiono i diversi form
quando viene lanciato il programma.
Come cambiare la proprietà di un oggetto su un altro form
La sintassi di Visual Basic che conosciamo (NomeControllo.NomeProprietà=Valore) vale solo per gli oggetti all’interno dello stesso
form. Se l’oggetto si trova sull’altro form, la sintassi cambia, perché deve specificare il nome del form su cui si trova il controllo.
Diventerà: NomeForm.NomeControllo.NomeProprietà=Valore
Per capire meglio questa cosa, pensate di essere a casa vostra. Se chiamate “Marco!” o “Papà!”, risponderanno il Marco o il Papà
della vostra famiglia. Non c’è bisogno di altro. Se invece siete a scuola, Marco può non bastare, e ci vuole il cognome. Pensate al
nome del form come al cognome dei controli
Per cui, se sono sul Frm1 e voglio cambiare una didascalia del Frm2 non basterà dire
Lbl1.Caption= “ciao”
ma bisognerà specificare:
Frm2.Lbl1.Caption = “ciao”
Visual Basic 12
Il problema del ristorante
Stiamo preparando il programma per il cassiere di un ristorante, che deve calcolare, tramite computer, il totale delle consumazioni di
ogni tavolo.
Nel programma avremo:
- Un form per i primi, uno per i secondi, uno per i contorni e uno per il totale
- Appariranno sempre due schermate contemporaneamente. La schermata di sinistra sarà quella dei piatti (primi, secondi,
contorni...) e cambierà ogni volta, la schermata di destra sarà quella del totale.
Operazioni dell’utente:
L’utente immetterà il numero di piatti serviti. Man mano che li immette (es 2 spaghetti ...) sull’etichetta di destra apparirà la cifra totale
per gli spaghetti (proprietà TextChange.....).Al termine cliccherà su “Totale primi” e sull’etichetta a destra del pulsante apparirà il totale
dei primi.
Premendo il pulsante “Vai al successivo”, sparirà il form dei primi, apparirà il form dei secondi e sul form totale si vedrà il totale
parziale raggiunto fino ad ora.... (totale = totale + ....). (Ricordate che quest’istruzione viene data da un altro form e quindi ....)
Come appare il programma dopo aver inserito i primi, aver cliccato sul pulsante
“Totale primi” ma non aver ancora premuto il pulsante “vai al successivo”
Inseriamo un’immagine
Per inserire un’immagine sul form, possiamo ricorrere al
controllo Image (è quello con il sole e la montagna ).
Tracciamo sul form il punto in cui vogliamo sistemarlo e,
nella proprietà Picture, clicchiamo su (nessuna) e poi sul
tasto con i tre puntini per andare a cercare l’immagine
nella cartella.
(in questo caso abbiamo preso 3 immagini)
Potete personalizzare meglio il vostro progetto ricorrendo
ai colori dello sfondo, al tipo di caratteri, ecc. ecc.
Lasciamo alla vostra creatività.
Il controllo Image
Visual Basic 13
Creare zone sensibili e messaggi
Un’immagine sullo sfondo del form
Creiamo un form e carichiamo sul suo sfondo una
immagine, utilizzando la proprietà Picture.
Cliccando sul valore “Nessuna” e poi sul tasto con i
tre puntini , si aprirà una casella di dialogo che ci
consente di cercare il file di immagine nel disco.
L’immagine apparirà sullo sfondo.
Il controllo Image
Utilizzando il controllo “Image”, che è quello con il sole e la
montagna, all’interno della cornice
creeremo delle zone trasparenti sullo sfondo del form
Il controllo immagine crea una cornice tratteggiata che si vede solo in
fase di progettazione. Nel nostro caso, se non ci fosse sullo sfondo
l’immagine, apparirebbe
un contorno di questo tipo:
Inseriamo messaggi che compaiono con un “ding!”
Creiamo tre controlli immagine trasparenti, uno su Cappuccetto
Rosso, uno su Batman e uno sulla donna che bacia la rana.
All’evento “cllick sull’immagine” potremo associare l’apparire di una
casella che contiene un messaggio
La funzione si chiama MsgBox e, nella sua versione più semplice,
ha questa sintassi
MsgBox “frase da inserire”
Infine inseriremo il codice associandolo a ciascuno dei controlli
“Image” per fare in modo che, cliccando ognuna delle tre aree
appaiano tre diversi messaggi, come in questo esempio:
Private Sub Image1_Click()
MsgBox "questa è cappuccetto rosso"
End Sub
Visual Basic 14
I menu
Grazie al comodo editor presente in VB possiamo aggiungere al nostro programma dei professionalissimi menu per
accedere alle varie funzioni del programma in maniera più comoda.
Per fare ciò basta cliccare sul terzo pulsante della barra strumenti, o scegliere “Editor di menu” dal menu “Strumenti”.
Nell’editor di menu bisognerà dare un nome e una caption ai
vari menu
(Le “&” servono per decidere quale lettera verrà sottolineata:
Scrivendo &File sul programma apparirà File, scrivendo
Can&cella apparirà Cancella)
Le quattro frecce servono per spostare il menu prima o dopo
(premendo su e giù) o per creare o togliere un sottomenu
(destra e sinistra).
Prepariamo ora un pimpante programmino come quello qui
illustrato (...)
Ci saranno due caselle di testo, e dei menu che
permetteranno di uscire o di scambiare il testo delle due
caselle.
Come appare dall’editor sopra, il menu “File” ha solo il
sottomenu “Esci”,mentre il menu “Modifica” ha i sottomenu
“Cancella le textbox” e “Altro”. Il sottomenu “Altro” ha come
sottomenu “Scambia i due testi”.
A questo punto apriremo la finestra del codice di
ogni comando di menu semplicemente
selezionandolo come dovessimo usarlo.
Inseriremo quindi questo codice:
Private Sub Esci_Click()
End
End Sub
Private Sub Cancella_Click()
Text1.Text = “”
Text2.Text = “”
End Sub
Private Sub Scambia_Click()
a$ = Text1.Text
Text1.Text = Text2.Text
Text2.Text = a$
End Sub
Provate a divertirvi immensamente usando il
fantastico programma che avete appena creato.
By Agostino Carandente
Visual Basic 15
Visual Basic
Salvare e caricare file
L’agendina segreta
Per salvare e caricare dati da file, si utilizza la stessa sintassi che abbiamo imparato per il QBasic.
OPEN “nomefile” for INPUT (OUTPUT/APPEND) AS # X
Questo semplice esercizio vuole creare una piccola agendina che permette di scrivere brevi commenti su amici, salvarli,
dando un nome al file, e caricarli a piacere.
Prepariamo una interfaccia grafica come questa
Ci saranno tre caselle di testo. Nella prima (che chiameremo
“txttesto”), inseriremo gli appunti sull’amico.
Per poter avere la barra di scorrimento e poter far andare a capo
automaticamente il testo, dovremo impostare la proprietà
“ScrollBars” su “2 - Vertical” e la proprietà “MultiLine” su “True”
Al tasto “Salva”, che avremo chiamato cmdsalva, associeremo il
salvataggio del testo inserito in txttesto, con il nome di file
inserito nella seconda casella di testo, chiamata txtsalva
Private Sub cmdsalva_Click()
s$ = txtsalva.Text
Open s$ For Output As #1
a$ = txttesto.Text
Print #1, a$
Close #1
End Sub
Come avrete notato, il nome del file è inserito in una variabile, s$ che viene letta dalla casella di testo e viene utilizzata per
il salvataggio.
Al tasto Carica, che avremo chiamato cmdcarica, associeremo il caricamento del file.
Per evitare che venga caricato solo il testo fino al primo separatore di campo (il primo “a capo”) dovremo creare un ciclo
Private Sub cmdcarica_Click()
c$ = txtcarica.Text
Open c$ For Input As #1
txttesto.Text = ""
Do
Line Input #1, a$
txttesto.Text = txttesto.Text + a$ + vbCr + vbLf
Loop Until EOF(1)
Close #1
End Sub
Il testo nella casella, come vedete, si arricchisce man mano (txttesto.Text = txttesto.Text + a$ ...) fino alla fine del file
(EOF (1)), inserendo anche gli “a capo” (vbCr e vbLf) [Carriage Return e Line Feed].
L’istruzione non può essere semplicemente Input # ma deve essere Line Input #.
Provate a creare il programma, a scrivere appunti su vostri amici e memorizzarli con il loro nome. Poi provate a caricarli
dopo aver vuotato la casella di testo.
Visual Basic 16
Scarica

Visual Basic 1 (scarica "vb2003" - 3 MB)