







Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Dispensa di programmazione visual basic.pdf
Tipologia: Dispense
Caricato il 28/02/2013
1 / 13
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!








Indice: Programma come file eseguibili e librerie: la scatola chiusa, compilatori e interpreti................................. 2 Concetto di algoritmo. Come funziona una macchina informatica. Il basic come linguaggio semplice per realizzare algoritmi............................................................................................................................... 3 Istruzioni basic: subroutine, funzioni, variabili, comandi, controllo dell’esecuzione................................... 4 L’ambiente di programmazione visuale: visual studio, documentazione in linea, compilazione, il progetto, i form, i moduli...................................................................................................................................... 5 Debugging di un programma: seguire un algoritmo passo passo............................................................. 5 Programmazione ad oggetti: visual basic come esempio di programmazione ad oggetti grafici................. 6 Utilizzo dei controlli: form, textbox, command button, primo esempio di programma.............................. 6 Manipolare i progetti........................................................................................................................... 7 Form: dialogo, SDI, MDI.................................................................................................................... 7 Utilizzo dei controlli: accedere alle proprietà, metodi, eventi.................................................................. 8 Menu, convenzioni di nomina di oggetti................................................................................................ 8 Oggetti e istanza di un oggetto, collezioni e oggetti di sistema ................................................................ 8 Variabili e costanti: scope, datatype, array, structure............................................................................. 8 Procedure: Sub, function, chiamate a funzioni. Procedure in moduli o in form......................................... 9 Operatori, comandi di controllo esecuzione .......................................................................................... 9 Debug e gestione degli errori.............................................................................................................. 10 Connessione a database access. Utilizzo del recordset........................................................................ 10 Creazione di installazioni, componenti aggiuntive (activex)................................................................... 10 Caratteri ANSI ................................................................................................................................. 11
Scopo e argomenti del manuale Questo manuale, con il corso ad esso associato, ha come scopo quello di fornire delle basi di programmazione utilizzando visual basic come esempio per creare programmi, utilizzare la programmazione ad oggetti grafici, concepire il programma modularmene
Cooperativa ALEKOS 2 0 1 5 5 M I L A N O - V. Plana, 49 - P. I V A 1 1 0 2 7 8 2 0 1 5 5 T e l 0 2 - 3 9 2 6 4 5 9 2 - F a x 0 2 – 7 0 0 5 0 6 0 8 4 [email protected] - www.alekos.net
Riprendiamo la stratificazione di un computer a partire dall’hardware (la parte fisica) fino ad arrivare all’utente, cioè al livello più vicino all’uomo (interfaccia e utilizzo). Se l’hardware è il livello fisico, il software è il livello logico (in mezzo c’è il firmware cioè quelle informazioni e elaborazioni basilari che permettono al software di avviarsi, come ad esempio il BIOS). Tutte le informazioni in un computer vengono registrate e lette (a livello software) in forma di file. Il file è quindi un insieme di byte che vengono letti (interpretati) diversamente a seconda del programma che li utilizza. Il sistema operativo stesso è fisicamente registrato in file.
E’ quindi necessario riuscire a distinguere i file in varie categorie per comprendere se e come utilizzarli. Il livello software si suddivide in sistema operativo, applicazioni e documenti utente. Un programma è una scatola chiusa informatica che riceve un input (parametri), elabora e restituisce un output. Ad esempio il programma ping riceve il numero IP come parametro e restituisce il reply su schermo Ping 192.168.0. Con applicazione si intende l’insieme di programmi e file collegati che permettono al calcolatore di eseguire le funzioni che gli vengono richieste; mentre un sistema operativo è un insieme coerente di programmi, in grado di fare funzionare tutto l’HW. Programmazione significa quindi creare i file (eseguibili .exe, librerie .dll, controlli activex .ocx) necessari per fare funzionare un programma. Il processo di compilazione può quindi essere visto come un imbuto. Partendo dai sorgenti (file di codice, file di appoggio, file di progetto,..) il compilatore (programma solitamente compreso nell’ambiente di programmazione, come ad esempio l’ambiente visual studio, che comprende molti linguaggi, o più in particolare visual basic) crea questi file binari che sono il vero e proprio programma. Nel caso più semplice da un file di progetto (.vbp), dei file di form (.frm) e dei file modulo in codice visual basic (.bas) viene creato un file eseguibile (.exe). Il codice nei sorgenti viene quindi scritto seguendo il linguaggio di programmazione del compilatore, per cui i sorgenti in C (o java o basic) verranno compilati con un compilatore C (o java o basic). Un compilatore vero e proprio crea un eseguibile che può funzionare direttamente in altri computer (ovviamente con tutti gli altri file necessari al programma), cioè viene codificato in codice macchina. Un interprete invece è un intermediario che traduce durante il funzionamento (runtime) il codice del programma in codice macchina. Ad esempio, in C esiste il compilatore, mentre il visual basic non crea veri eseguibili ma l’eseguibile ha codice che va ancora interpretato con il runtime (vbrun60.dll, ecc), il compilatore java crea classi (.class) che vanno interpretate dalle java virtual machine (JVM) che esistono nei vari sistemi operativi. L’idea dell’imbuto fa anche capire che si perdono informazioni, non si può infatti risalire al sorgente di un programma (a parte rari casi), anche perché la scrittura di un programma che in codice macchina realizza la stessa cosa può essere differente.
La modularità degli algoritmi suggerisce anche un modo di intendere la programmazione, cioè a dettagli successivi. Ogni compito (o blocco) può essere implementato con una procedura (sub) o una funzione (function), cioè una parte di codice che esegue un unico compito (magari riutilizzabile in varie parti del programma). Sub inizia() i= End sub La funzione differisce da una procedura perché ritorna dei valori all’uscita della funzione. In ogni momento il programma, oltre ad avere una posizione nel flusso, ha uno stato che dipende dai valori delle variabili. Le variabili sono come dei cassetti, dei luoghi nella memoria, che vengono utilizzati per modificarne i valori e poterli utilizzare. Ogni variabile è di un tipo (intero, stringa, numero reale, matrici di variabili,..) e viene dichiarata prima di essere utilizzata (per riservare spazio nella memoria). Dim i as integer Dim a1 as string Mentre i è il nome della variabile, integer indica il tipo di variabile. E’ possibile creare una variabile matrice (array, es. dim ar(30) as integer ), così come è possibile creare strutture di tipi (type) che contengono più tipi: type tipoPC dim ip as string dim sernum as integer end type dim primocomputer as tipoPC Infine per implementare il flusso del programma si usano i comandi controllo di esecuzione come GO TO, FOR NEXT, DO WHILE, IF THEN ELSE. Tutti questi comandi realizzano il flusso logico del programma e sono comuni a tutti i linguaggi di programmazione. Per questo motivo l’importante è imparare a programmare con un linguaggio, per gli altri basta imparare solo le differenze per cui è molto più semplice.
Un tempo la programmazione modulare partiva dall’impostazione logica del programma nella quale l’interfaccia utente era solo una parte. Con lo svilupparsi delle interfacce grafiche e il massiccio riutilizzo di librerie preconfezionate, l’importanza della programmazione grafica (visuale) è diventata tale che a volte (specie in visual basic) si parte a costruire un programma dall’interfaccia grafica. L’ambiente di programmazione: è il programma che consente di scrivere il codice, costruire il progetto (che è l’insieme dei sorgenti, cioè i file di partenza della compilazione), modificare e creare le form (le finestre del programma) e i controlli grafici, infine di compilare ed eseguire il programma. Visual studio comprende gli ambienti di programmazione microsoft visual basic, visual C++, java, visual foxpro ed ha eliminato il manuale fisico per sostituirlo con un sola documentazione in linea MSDN (developer network) sempre accessibile con la guida dei programmi (tasto F1 contestuale, cioè se si seleziona un comando e si lancia la guida viene visualizzata la guida su quel comando). Ogni programma è rappresentato dal progetto, composto dai form (file .frm) e dai moduli che sono il codice generale (file .bas). Nei form si progetta la parte grafica, si inseriscono i controlli (gli oggetti grafici come bottoni, campi di testo,…), e si scrive anche la parte di codice legata agli eventi degli oggetti grafici e dei form. Il codice (cioè le variabili generali, le procedure e le funzioni) che fanno parte di un form non sono però visibili (cioè non si possono utilizzare) da altri form o dal codice generale (contenuto nei moduli). Il primo giro completo dell’ambiente di sviluppo è quindi: creare e salvare un progetto nuovo, con un form e un modulo (salvando anch’essi in file), aggiungere qualche controllo al form, scrivere del codice di un evento di un controllo (click di un bottone) Sub Command1_click() Msgbox “cliccato!” Visualizza_i End sub Dichiarare le variabili globali nel modulo e scrivere una procedura globale e un’altra procedura che la chiama Dim i as integer Sub incrementa() i=i+ End sub Sub visualizza_i() ‘riga di commento: chiamata alla procedura incrementa incremata Msgbox “ora la variabile i e:”+str(i) End sub Infine compilare il programma ed eseguirlo sia in modalità debug che lanciando l’eseguibile creato.
Quando si esegue il programma dall’ambiente di sviluppo (modalità debug, che significa eliminazione dei bachi) è possibile seguire passo passo il flusso di programmazione e controllare lo stato del programma (la visualizzazione della grafica e il valore delle variabili). Dato che è caricato in memoria l’ambiente di sviluppo, tutta la parte di interprete e molte librerie di debug sono già in esecuzione, per cui l’avvio in questa modalità è immediato mentre
Il simbolo di uguale serve per assegnare una variabile: con a=b viene preso il valore di b e assegnato alla variabile a. Dato che le proprietà di un oggetto sono variabili, l’istruzione assegna alla prorpietà text dell’istanza txttot (tipo di dato: stringa) alla somma numerica delle proprietà text delle altre 2 istanze. Siccome la proprietà text è di tipo stringa, è necessario convertire il dato in numerico per poter fare la somma numerica, con la funzione val(). La funzione val() riceve come input (parametro) una stringa e dà come output (valore di ritorno) il valore numerico: ad esempio val(“34a”) è 34. Esteso questo esempio ad una calcolatrice, all’evento click del bottone enter, si può associare una procedura simile utilizzando una serie di istruzioni if o più elegantemente utilizzando l’istruzione case: Private Sub cmdrun_Click() num2 = Val(Text1.Text) If opr = "+" Then Text1.Text = num1 + num Else If opr = "-" Then Text1.Text = num1 - num Else If opr = "*" Then Text1.Text = num1 * num Else If opr = "/" Then Text1.Text = num1 / num End If End If End If End If End Sub
Private Sub cmdrun_Click() num2 = Val(Text1.Text) Select Case opr Case "+" Text1.Text = num1 + num Case "-" Text1.Text = num1 - num Case "*" Text1.Text = num1 * num Case "/" Text1.Text = num1 / num End Select End Sub
Vengono utilizzate le variabili num1 e num2 per memorizzare i due numeri su cui eseguire le operazioni e la variabile opr per memorizzare l’istruzione precedentemente selezionata. Per essere visibili in tutte le procedure della form queste dichiarazioni devono essere inserite nella parte (generale) (dichiarazioni) del codice della form Dim num1, num2 As Double Dim opr As String
Un progetto è un insieme di file sorgenti, le risorse (come icone, file,..) e parametri di compilazione e di esecuzione. Manipolare un progetto significa quindi aggiungere o togliere file al progetto e modificare le proprietà del progetto.
I form possono essere di vario tipo: Dialogo: è una finestra di dialogo, quindi non permette di passare ad altre finestre del programma finchè non si sceglie una azione Single Document Interface: si indica una tipologia di utilizzo delle finestre per cui si aprono singolarmente Multiple Document Interface: la tipologia di utilizzo delle finestre per cui esiste la finestra principale (main) e le finestre documento (child)) si aprono all’interno di questa.
Per aggiungere un controllo bisogna aggiungere il componente relativo (activex), si troverà quindi disponibile nella toolbox. I controlli possono essere anche creati e modificati a partire dai sorgenti che ne definiscono le proprietà, i metodi, gli eventi e l’apparenza grafica. Per ogni istanza di un controllo (ovvero un elemento particolare dell’oggetto) si possono definire o modificare le proprietà (finestra proprietà) e si può scrivere il codice relativo ad un evento dell’oggetto, come ad esempio il controllo.click() , oppure definire nuovi metodi associati all’oggetto.
I menu vengono creati con il menu editor e possono essere associati a qualsiasi finestra. All’interno del menu vengono anche definite le procedure relative ad ogni voce del menu. Convenzioni per la nomina degli oggetti: form frm check box chk combo box cbo command button cmd directory list box dir drive list box drv file list box fil frame fra grid grd horizontal scroll bar hsb image img label lbl line lin list box lst menu mnu option button opt OLE client ole Picture box pic Shape shp Text box txt Timer tmr Vertical scroll bar vsb
L’instanza di un oggetto è la realizzazione particolare di un oggetto. L’istanza quindi di un oggetto tipo textbox è il particolare oggetto textbox chiamato text. Si possono creare istanze di oggetti anche con il codice e quindi runtime (durante il funzionamento del programma), e possono essere anche definiti come singoli elementi di un array di oggetti. Ad esempio in un progetto MDI, si possono creare finestre con un array di form child.
Lo scope di una variabile indica la visibilità, ovvero all’interno di quale procedura viene vista la variabile e quindi dove è utilizzabile. Visibilità di variabili
Per debug si intende la correzioni degli errori (togliere i bachi) e gli strumenti per analizzare lo stato del programma in esecuzione (run-time). Nel codice si possono inserire punti di interruzione (breakpoint) in modo che il programma si fermi in un determinato punto per poter analizzare ogni variabile o istruzione. A quel punto è possibile eseguire una istruzione alla volta per controllare la variazione dello stato del programma (grafica, variabili, ..) ad ogni istruzione, oppure continuare l’esecuzione fino al prossimo punto di interruzione.
Un recordset è un insieme di record (righe) risultanti da una richiesta ad un database. Il dynaset è un recordset dinamico per cui è possibile anche modificare i record ottenuti. Dim r1 As dynaset Set r1=db.createDynaset(“select indirizzo from anag where tel like’02’) R1.movefirst R1(“indirizzo”)=”milano”
Per creare le installazioni che installano sia il programma creato (.exe), sia le .dll e componenti (activex) necessari al programma, si utilizza la creazione guidata di installazioni a partire dal progetto. Vengono riconosciuti i componenti necessari e inclusi nell’installazione, creato il file setup.exe e compressi tutti i file di installazione. I componenti aggiuntivi sono activex già installati o installabili che consentono di utilizzare controlli più complessi o particolari rispetto a quelli predefiniti.
0 • 32 [space] 64 @ 96 `
1 • 33! 65 A 97 a
2 • 34 " 66 B 98 b
3 • 35 # 67 C 99 c
4 • 36 $ 68 D 100 d
5 • 37 % 69 E 101 e
6 • 38 & 70 F 102 f
7 • 39 ' 71 G 103 g
8 * * 40 ( 72 H 104 h
9 * * 41 ) 73 I 105 i
10 * * 42 * 74 J 106 j
11 • 43 + 75 K 107 k
12 • 44 , 76 L 108 l
13 * * 45 - 77 M 109 m
14 • 46. 78 N 110 n
15 • 47 / 79 O 111 o
16 • 48 0 80 P 112 p
17 • 49 1 81 Q 113 q
18 • 50 2 82 R 114 r
19 • 51 3 83 S 115 s
20 • 52 4 84 T 116 t
21 • 53 5 85 U 117 u
22 • 54 6 86 V 118 v
143 • 175 ¯ 207 Ï 239 ï
144 • 176 ° 208 Ð 240 ð
145 ‘ 177 ± 209 Ñ 241 ñ
146 ’ 178 ² 210 Ò 242 ò
147 “ 179 ³ 211 Ó 243 ó
148 ” 180 ´ 212 Ô 244 ô
149 • 181 μ 213 Õ 245 õ
150 – 182 ¶ 214 Ö 246 ö
151 — 183 · 215 × 247 ÷
152 ˜ 184 ¸ 216 Ø 248 ø
153 ™ 185 ¹ 217 Ù 249 ù
154 š 186 º 218 Ú 250 ú
155 › 187 » 219 Û 251 û
156 œ 188 ¼ 220 Ü 252 ü
157 • 189 ½ 221 Ý 253 ý
158 ž 190 ¾ 222 Þ 254 þ
159 Ÿ 191 ¿ 223 ß 255 ÿ
•These characters aren't supported by Microsoft Windows.