VISUAL BASIC (parte I)
BAKUNIN
bakunin@meganmail.com
Incominciamo col dire che se non avete VISUAL BASIC non potete creare applicazioni con VISUAL BASIC (e forse è un bene!). Io odio Windoz quindi... ma il VISUAL BASIC è utile, quindi ve lo insegno.
PRIMA APPLICAZIONE
Aprite VB e troverete davanti ai vostri occhi una finestrella che vi chiede che tipo di applicazione creare. Incominciamo con Standard EXE. Ora avrete davanti una finestrella chiamata Form1. Quella è già un'applicazione. E' una finestra del vostro amato Windoz già funzionante. Ovviamente senza un tupo, ma funzionate. Se non mi credete fate click su RUN e poi su START. Per uscire chiudete la finestra cliccando sulla X (ma devo dirvi pure queste cose?).
Facciamo un'applicazione semplice con 3 pulsanti (Sì No Forse), una scritta di domanda (Sono un programma stupido?), e una di risposta (a seconda di cosa clicco).
EX CLARO?
-------------------------------
| Sono un programma stupido? |
| |
| |
| RISPOSTA |
| |
| |
| _______ _______ _______ |
| | Sì | | No | | Forse | |
| ------- ------- ------- |
--------------------------------
Ovviamente voglio che RISPOSTA si veda solo quando io clicco su uno dei 3 pulsanti.
Incominciamo!
Cliccate sull'icona del pulsante e mettetene uno. Premete F4 e vi comparirà (se non c'è già) il menu proprietà. Come NAME mettete si. Come CAPTION mettete &Sì. Vi comparirà scritto sul pulsante Sì. con la S sottolineata. Questo grazie al carattere & che indica i tasti con gli ALT. Ora se eseguite l'applicazione e premete ALT+S è come se premeste il pulsante Si. Fate la stessa cosa con altri 2 pulsanti chiamandoli uno No e l'altro Forse. Ovviamente CAPTION scritto bene, l'altro senza maiuscole e accenti vari. Questo è solamente per proforma, poi fate quello che volete. NAME serve per indicare il pulsante o in genere l'oggetto, CAPTION la scritta sul pulsante.
Ora mettete una frase cliccando su l'icona con l'immagine di una "A". Lasciate stare NAME e mettete su CAPTION ciò che volete che compaia, nel nostro caso "SONO UN PROGRAMMA STUPIDO?". Sotto NAME c'è Alignment. Mette la terza opzione (cioè center) Mettete nuovamente una frase ma come nome mettete "risposta", mentre come CAPTION lasciate quello che c'è già. Cercate poi la scritta VISIBLE (è uno degli ultimi). Mettete false.
NON VI PREOCCUPATE SE NON CAPITE... vi spiego dopo!
OK! ora la struttura è fatta. Cliccate 2 volte su Sì e vi si aprirà il codice. Vi comparirà una cosa simile a questo
Private Sub si_Click()
End Sub
Ora dobbiamo scrivere quello che vogliamo che faccia il programma se clicckiamo Sì. Scrivete questo:
Private Sub si_Click()
risposta.Visible = True
risposta.Caption = "LO SO!"
End Sub
Chiudete il codice e cliccate 2 volte sul no.
Mettete questo:
Private Sub no_Click()
risposta.Visible = True
risposta.Caption = "Mi prendi per il Culo?"
End Sub
Per il forse mettete:
Private Sub forse_Click()
risposta.Visible = True
risposta.Caption = "Prendi una decisione chiara!"
End Sub
Chiudete tutto e avviatelo cliccando su RUN e START.
BENE! Ora avete creato il vostro primo programma con VB. Siete emozionati?
Incominciamo con le spiegazioni!
SPIEGAZIONI
VB è un linguaggio di programmazione ad oggetti. Cosa vuol dire? Vuol dire che inseriti gli oggetti loro lavorano poi indipendentemente. Tutto è legato a delle finestre di WINDOWZ. La finestra principale si chiama FORM1, ma possiamo cambiare il nome mettendo al posto di CAPTION il titolo della finestra che vogliamo. PARLANDO DELLE PROPRIETA'. Sono divise in varii sotto punti. Fondamentali sono:
NAME regola il nome dell'oggetto
CAPTION regola il testo
VISIBLE regola la visibilità dell'oggetto o no
BACKCOLOR il colore di sfondo
BORDERSTYLE tipo di stile del bordo
MAXBUTTON Visualizza o no il pulsante per la massimazione della finestra
MINBUTTON Vedi sopra ma per il bottone del "riduci a icona"
SHOWINTASKBAR Visualizza il programma nella barra di AVVIO come finestra aperta o no
ICON Icona della finestra
Ora parliamo del codice.
Vi ho fatto inserire questo:
Private Sub forse_Click()
risposta.Visible = True
risposta.Caption = "Prendi una decisione chiara!"
End Sub
Cosa vuol dire? Ho modificato le caratteristiche dell'oggetto "risposta" (che corrisposta alla scritta seconda che abbiamo impostato col nome RISPOSTA). Il principio è che se voglio modificare una proprietà devo fare:
nome_oggetto.nome_proprietà=modifica
nel nostro caso:
risposta.visible=TRUE
Cioè: oggetto risposta.
Proprietà visible
modifica TRUE
Rendo visibile l'oggetto RISPOSTA quando uno clicca sul SI!
Poi modifico anche la scritta e ci metto: Prendi una decisione chiara!
CHIARO?
Spariamoci un altro esempio:
Un'applicazione che ti permetta di valutare da 1 a 10 determinati siti. Cosa ci serve? Un'elenco di siti: Si usano dei COMBOBOX. Lascio a voi il titolo, e la grafica dell'applicazione. Io mi preoccupo solo del sodo! Mettiamone 2.
Il primo lo chiamate SITI
Il secondo VOTI
Poi mettete una LISTBOX per tenere a mente i vostri voti.
La chiamate LISTA
Per finire un pulsante che chiamate AGGIUNGI
Visualizzate il codice (WIEW --> CODE)
Private Sub Form_Load()
siti.Clear
voti.Clear
lista.Clear
siti.AddItem "www.resurrezione.it"
siti.AddItem "www.vangelo.it"
siti.AddItem "www.lamadonna.it"
siti.AddItem "www.eputt_na.it"
siti.AddItem "www.finchelabarcava.it"
siti.Text = "www.vangelo.it"
voti.AddItem "0"
voti.AddItem "1"
voti.AddItem "2"
voti.AddItem "3"
voti.AddItem "4"
voti.AddItem "5"
voti.AddItem "6"
voti.AddItem "7"
voti.AddItem "8"
voti.AddItem "9"
voti.AddItem "10"
voti.Text = "6"
End Sub
Questo cosa fa? Imposta all'avvio i valori da contenersi all'interno dei ComboBOX.
Ora preoccupiamoci dell'inserzione dei dati nella lista:
Private Sub aggiungi_click()
lista.AddItem siti.Text + ": " & voti.Text
End sub
Cosa vuol dire? Vuol dire che immette nella lista il contenuto del COMBOBOX selezionato poi un due punti e poi il voto. CHIARO?
Se io clicco su www.lamadonna.it e poi lo voto 1 mi compare:
www.lamadonna.it: 1
Ora complichiamo le cose! Voglio impedire che tu possa votare 2 volte lo stesso sito! Come fare? Metto all'interno de codice AGGIUNGI questo al posto dell'altro:
Private Sub aggiungi_Click()
Dim i As Integer
For i = 1 To lista.ListCount
If InStr(lista.List(i - 1), siti.Text) > 0 Then
Beep
MsgBox "Ti piace questo sito!! Quante volte vuoi votarlo?.", vbExclamation, "Attenzione!"
Exit Sub
End If
Next i
lista.AddItem siti.Text + ": " & voti.Text
End Sub
Spiego meglio da capo! Il comando ADDITEM permette di inserire dei valori all'interno di una lista o di una combobox. Il comando CLEAR elimina tutti i valori. Il comando voti.text imposta la scritta standard. Vediamo il codice appena inserito:
For contatore = inizio To fine
.....
Next [contatore]
Effettua le operazioni all'interno quante volte voglio. Nel caso sopra finche non finiscono i valori della lista (ListCount è adibito alla conta dei valori possibili). Se arriva alla fine senza problemi, fa partire l'aggiunga solita già vista prima.
Tra i comandi compresi tra il FOR e il NEXT c'è un ciclo IF.
Il ciclo IF è sempre il solito...
IF questo è vero THEN
...
Nel nostro caso il comando InStr confronta la una scritta con un'altra. Se lista.LIist(i-1), cioè la riga (ho messo i-1 perché parte da 0 e non da 1 come il valore di i che assume prima 1 poi 2 poi... fino alla fine) è uguale a quello che voglio inserire (siti.text) allora fai...
BEEP (suono)
MsgBox "Ti piace questo sito!! Quante volte vuoi votarlo?.", vbExclamation, "Attenzione!"
(Finestra di messaggio che dice "Ti piace questo..." del tipo EXCLAMAZIONE e con titolo ATTENZIONE!
Ovviamente se avverto che non inserisco la scritta devo uscire prima che la inserisco! Quindi END SUB.
VARIABILI
Semplici da utilizzare:
Dim Nome As String
Nome = "Michele"
Per chi non sa nulla di programmazione la STRING sono delle variabili di scrittura. Quindi:
BAKUNIN
Se quindi faccio:
Dim Nome As String
Nome = "Michael Bakunin"
Label1.Caption=Nome
Compare una etichetta col mio nome!
Ecco le altre variabili:
Integer NUMERO INTERO
Long INTERO LUNGO
Single NUMERO CON VIRGOLA
Double SIMILE A SOPRA MA CON DIFFERENZE che non capireste... PER ORA!
Se volessi che la variabile nome contenesse al massimo 40 caratteri faccio:
Dim Nome As String * 40
FILE
Vogliamo aprire un file?
ECCO COME:
Open "file.dat" for Input As #1
Se volessimo andare alla ricerca del nostro file, basterà fare:
Appl = App.Path
If Right$(App.Path, 1) <> "\" Then
Appl = Appl + "\"
End If
Open Appl + "borsa.dat" for Input As #1
Ove Appl = App.Path ci mostra la collocazione del file assoluta.
Esistono altri comandi simili:
App.Title Questo ci mostra il titolo
App.Helpfile Il file di guida
App.EXEName Nome del file .exe
App.LegalCopyright informazioni sul copyright
App.Comments Commenti
App.Major e App.Minor Versione del programma
App.PrevIstance Se l'applicazione è già utilizzata da un'altro programma
STAMPA
Printer.Print Stampa TUTTO
Printer.PaintPicture Stampa solo le figure
Printer.PrintForm Stampa il form
LE STRINGE
Vediamo l'esempio:
Dim stringa, risultato As String
stringa="Vorrei salutare mia mamma!"
risultato = Left(stringa, 6)
Memorizza nella stringa risultato le prime sei lettere della variabile stringa, quindi VORREI. Se Avessi messo Right avrei preso le ultime sei.
Se avessi messo Mid(stringa, 4, 3) avrei presso dal 4 al 3 carattere partendo dalla metà
Utile è anche LEN che da il numero dei caratteri della variabile.
Ecco un esempio:
If Len(stringainput) > 60 Then
stringainput = Left(stringainput, 60)
Msgbox "Ho memorizzato solo i primi 60 caratteri!", 48, "Attenzione"
End If
Abbiamo visto prima il comando InStr. Vediamo un esempio per capire come funge:
Dim stringa As String
Dim i As Integer
stringa = "Io vi dico solo una cosa: VIVA BAKUNIN!"
i = InStr(stringa, "BAKUNIN")
Ricerca all'interno della "stringa" la parola BAKUNIN. Se assume il valore 0 vuol dire che non è stata trovata... Altrimenti il valore sarà la posizione esatta della parola.
UCASE LCASE mi danno una variabile tutta maiuscola o tutta minuscola.
Ho tirato fuori la parola MSGBOX.
Ecco che tipi ce ne sono:
VbOKOnly 0 Visualizza solo il pulsante OK.
VbOKCancel 1 Visualizza i pulsanti OK e Annulla.
VbAbortRetryIgnore 2 Visualizza i pulsanti Termina, Riprova, e Ignora.
VbYesNoCancel 3 Visualizza i pulsanti Si', No e Annulla.
VbYesNo 4 Visualizza i pulsanti Si' e No.
VbRetryCancel 5 Visualizza i pulsanti Riprova e Annulla.
VbCritical 16 Visualizza l'icona di messaggio critico.
VbQuestion 32 Visualizza l'icona di richiesta di avviso.
VbExclamation 48 Visualizza l'icona di messaggio di avviso.
VbInformation 64 Visualizza l'icona di messaggio di informazione.
VbDefaultButton1 0 Il primo pulsante e' il predefinito.
VbDefaultButton2 256 Il secondo pulsante e' il predefinito.
VbDefaultButton3 512 Il terzo pulsante e' il predefinito.
VbDefaultButton4 768 Il quarto pulsante e' il predefinito
PER ORA MI FERMO QUI! CIAO!