Visual Basic.NET: un nuovo linguaggio di programmazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Visual Basic.NET: un nuovo linguaggio di programmazione"

Transcript

1 Visual Basic.NET: un nuovo linguaggio di programmazione Visual Basic.NET è uno dei linguaggi che fa parte della suite di sviluppo Visual Studio.NET: con essa Microsoft vuole segnare una svolta nel mondo della programmazione. E pare che le prerogative ci siano tutte: di questa famiglia di prodotti fa parte anche C#, il nuovo linguaggio che, secondo Microsoft, riesce a coniugare la semplicità di Visual Basic con la potenza propria del C++. La trattazione delle novità architetturali introdotte da Microsoft con Visual Studio.NET, come il Framework.NET, esula dagli obiettivi di questo corso, che si propone invece di analizzare nello specifico Visual Basic.NET: esso introduce talmente tanti cambiamenti rispetto alle versioni precedenti che da molti, e non a torto, è considerato un nuovo linguaggio di programmazione piuttosto che un semplice aggiornamento. Ora finalmente Visual Basic è un linguaggio di programmazione orientato agli oggetti: ereditarietà, polimorfismo e overloading non sono più prerogative dei programmatori Java e C++. I tipi di dato sono stati modificati, per renderli conformi alle definizioni usate negli altri linguaggi; ad esempio, il tipo di dato Long è stato sostituito da Integer (il vecchio Integer ora è diventato Short). Anche per quanto riguarda la gestione degli errori, VB si è ispirato a Java e C++, introducendo il costrutto Try Catch Finally. Un'altra importante novità è il supporto nativo per la creazione e la gestione dei thread. La casella degli strumenti di VB, inoltre, è stata ampliata includendo numerosi nuovi controlli utili, tra cui uno che permette di inserire un'icona nella System Tray, vicino all'orologio. I controlli per visualizzare le finestre di dialogo comuni e gli elementi dell'interfaccia di Windows, come la Toolbar, la Statusbar e la Listview, fanno ora parte dei componenti standard, cioè sono utilizzabili senza dover ricorrere a controlli OCX aggiuntivi. La nuova versione di Visual Basic consente anche di creare applicazioni console, cioè applicazioni eseguibili dalla riga di comando di MS-DOS. Come conseguenza di tutte queste innovazioni (e di molte altre che verranno analizzate in seguito), i progetti realizzati con le versioni precedenti di VB sono incompatibili con VB.NET, cioè non possono essere aperti con quest'ultimo se non utilizzando una procedura di conversione che, però, nella maggior parte dei casi richiede anche degli interventi manuali. Anche il formato dei file, infatti, è stato modificato: ora tutti i file che contengono il codice sorgente hanno estensione.vb. Per tale motivo non è consigliabile cercare di aggiornare i propri programmi a VB.NET; al contrario, è conveniente utilizzare questo linguaggio per la creazione dei nuovi software. In questo corso, rivolto a chi ha già una minima conoscenza di Visual Basic, verranno analizzate ed esemplificate le principali novità di Visual Basic.NET, soprattutto rispetto alle versioni precedenti; non verranno invece trattate le nozioni di base, come il concetto di tipo di dato, la differenza tra funzioni e procedure, le strutture iterative, ecc. che hanno lo stesso significato che avevano nelle precedenti versioni di Visual Basic. Per maggiori informazioni su questi argomenti si rimanda pertanto al corso su Visual Basic. I cambiamenti nei tipi di dato e nelle dichiarazioni Uno dei cambiamenti più evidenti in Visual Basic.NET, rispetto alle versioni precedenti, riguarda i tipi di dato. Tale modifica si è resa necessaria per rendere i tipi di dato di VB.NET formalmente uguali a quelli utilizzati in C# e in C++ (gli altri due linguaggi "principi" di Visual Studio.NET). Il tipo di dato Long è stato sostituito da Integer, che quindi ora è usato per la rappresentazione di numeri interi a 32 bit; il vecchio Integer di VB6 e delle versioni precedenti, usato per i numeri a 16 bit, è diventato Short. In VB.NET il tipo Long serve per rappresentare i numeri a 64 bit. Comunque, per dichiarare questi tipi di dato, è possibile utilizzare anche i nomi con cui sono identificati all'interno del framework: invece di Short di può usare Int16, invece di Integer Int32 e al posto di Long Int64. Riassumendo, ad esempio: Visual Basic 6 Dim I As Integer Dim L As Long Dim I As Short oppure Dim I As Int16 Dim L As Integer oppure Dim L As Int32 Visual Basic.NET

2 Relativamente alle espressioni booleane, bisogna evidenziare una importante novità. Utilizzando l'operatore Or tra due espressioni logiche: ad esempio A > 0 Or B = 5, esse vengono sempre controllate entrambe, anche se, in realtà, nel caso in cui A > 0 sia vera, non sarebbe necessario fare il controllo sulla B, dal momento che il risultato di tutta l'espressione sarà comunque True. Per sopperire a tale mancanza, è stato introdotto un nuovo operatore, OrElse: utilizzando quest'ultimo, A > 0 OrElse B = 5, se la prima condizione è vera la seconda non viene valutata. Analogamente, per quanto riguarda l'and, l'operatore AndAlso evita il controllo sulla seconda condizione se la prima è falsa, poiché il risultato finale sarà sempre False. Le stringhe a lunghezza fis sa non sono più supportate nel linguaggio. Non è quindi più possibile scrivere una dichiarazione come la seguente: Dim S As String * 10 La nuova versione del linguaggio introduce delle novità anche per quanto riguarda l'area di validità delle variabili: ora le variabili sono locali rispetto alla porzione di codice in cui vengono definite. Se, ad esempio, si dichiara una variabile all'interno di un ciclo For, essa non sarà più utilizzabile una volta usciti dal ciclo stesso. Si verifica quindi la seguente situazione: Dim I As Short For I = 0 To 10 Dim N As Integer... Next I MsgBox("Il valore di N è: " & N & ".") 'Errato: la variabile N non è più utilizzabile. Il tipo Currency è stato eliminato; al suo posto è possibile usare il nuovo tipo Decimal per i calcoli monetari e per calcoli a virgola fissa in cui la precisione riveste un'importanza particolare. Il tipo di dati Variant non esiste più: al suo posto è necessario usare il tipo Object, che comunque conserva tutte le caratteristiche del Variant, quindi può essere utilizzato per memorizzare qualsiasi tipo di dato primitivo, nonché Empty, Null, Nothing, oppure come puntatore ad un oggetto. Anche la gestione degli array è cambiata: ora gli array possono essere solo a base 0; non è quindi più possibile specificarne il limite inferiore. Un effetto collaterale di questa modifica è che l'istruzione Option Base 1 non esiste più. I tipi definiti dall'utente ora non si creano più con il costrutto Type; al suo posto è stata introdotta la parola chiave Structure. Ogni elemento all'interno della struttura deve essere dichiarato con Dim, Event, Friend, Private, o Public (ritorneremo su queste parole chiave più avanti, quando parleremo delle classi in VB.NET). Ad esempio: Visual Basic 6 Public Type IMPIEGATO Nome As String Matricola As String End Type Visual Basic.NET Public Structure IMPIEGATO Dim Nome As String Dim Matricola As String End Structure Una novità significativa introdotta dalle Structure di VB.NET è la possibilità di definire Sub, Function e Property all'interno di una struttura. Riprendendo l'esempio sopra riportato, è possibile aggiungere una Sub alla struttura IMPIEGATO che visualizzi una finestra contente le informazioni contenute nella struttura stessa: Public Structure IMPIEGATO Dim Nome As String Dim Matricola As String Sub Informazioni() 'Visualizza una MessageBox che contiene le informazioni contenute nella struttura. MsgBox("Nome dell'impiegato: " & Nome & vbcrlf & "Matricola: " & Matricola, MsgBoxStyle.Information)

3 End Structure Un utilizzo di questa struttura è il seguente: Dim I As IMPIEGATO With I.Nome = "Marco Minerva".Matricola = "232440".Informazioni() 'Richiama la Sub definita nella struttura. End With Altre novità importanti sono state introdotte da VB.NET relativamente alla dichiarazione di costanti, variabili, procedure e funzioni. Innanzi tutto, è finalmente possibile inizializzare una variabile nella sua dichiarazione. Ad esempio, sono valide le dichiarazioni seguenti: Dim Punti As Short = 10 Dim Nome As String = "Pippo" Nelle precedenti versioni di Visual Basic, se non diversamente specificato, i parametri di una funzione o di una procedura venivano passati per riferimento; in pratica, la parola chiave ByRef era predefinita. In VB.NET, invece, per default gli argomenti sono passati ad una funzione per valore (ByVal ); utilizzando l'editor di Visual Studio.NET, se nella dichiarazione di una Sub o di una Function non si specifica altrimenti, davanti ai nomi degli argomenti verrà automaticamente aggiunto ByVal. Infine, se un parametro di una funzione è dichiarato come Optional, è obbligatorio specificare il valore che tale parametro assumerà nel caso in cui non venga specificato quando si richiama la funzione stessa. Ad esempio: Visual Basic 6 Private Sub DoSomething(frm As Form, Optional I As Integer) Visual Basic.NET Private Sub DoSomething(ByVal frm As Form, Optional ByVal I As Short = -1) Un'ultima nota riguarda il modo di restituire un valore di una Function. Nelle precedenti versioni di Visual Basic, per restituire un valore era necessario scrivere <nome funzione> = valore. In VB.NET, oltre a questo metodo, è stato aggiunta la parola chiave Return, analoga a quanto già esistente in C e in Java. Queste due funzioni sono quindi equivalenti: Private Function AreaTriangolo(ByVal Base As Double, ByVal Altezza As Double) As Double AreaTriangolo = (Base * Altezza) / 2 End Function Private Function AreaTriangolo(ByVal Base As Double, ByVal Altezza As Double) As Double Return (Base * Altezza) / 2 End Function L'unica differenza è che, eseguendo l'istruzione Return, si uscirà automaticamente della funzione. In altre parole, l'istruzione Return dell'esempio precedente equivale a: AreaTriangolo = (Base * Altezza) / 2 Exit Function Utilizzo di classi in VB.NET Alla base di ogni linguaggio di programmazione orientato agli oggetti c'è il concetto di classe. Chi ha già usato le versioni precedenti di Visual Basic assocerà immediatamente il concetto di classe a quello di modulo di classe. In effetti, le classi di VB.NET mantengono tutte le caratteristiche dei moduli di classe, ma ne aggiungono numerose altre (come verrà evidenziato meglio nelle prossime Lezioni). In prima approssimazione, una classe è una collezione di variabili, metodi e proprietà; è possibile creare una classe usando il costrutto Class:

4 Class Test Dim Nome As string 'Altre variabili. Public Sub VisualizzaNome() '... End Class Una classe è anche un tipo, quindi può essere assegnata ad una variabile: Dim Prova As New Test() 'La variabile Prova contiene un'istanza della classe Test. E' da notare l'uso della parola chiave New, necessaria perché la variabile che stiamo definendo si riferisce ad un oggetto (come in Visual Basic 6, infatti, le istanze degli oggetti sono create con New). Fatto questo, è possibile utilizzare la classe utilizzando la comune sintassi di Visual Basic. Ad esempio: Prova.VisualizzaNome() L'evento Iniziatialize, generato quando si crea un'istanza della classe, non esiste più: al suo posto è possibile definire un costruttore della classe, cioè un metodo che viene automaticamente richiamato quando si crea un'istanza della classe stessa; una delle caratteristiche più importanti del costruttore è che esso consente di specificare le proprietà iniziali della classe (in questo senso è più versatile dell'evento Initialize). Il costruttore è una particolare Sub il cui nome deve obbligatoriamente essere New. Riprendendo l'esempio precedente, vediamo come creare un costruttore per la classe Test: Class Test Dim Nome As string 'Altre variabili. Sub New(ByVal strnome As String) 'Imposta le proprietà iniziali. Nome = strnome Public Sub VisualizzaNome() '... End Class Come possiamo vedere, la routine New prende come argomento la variabile strnome e la assegna alla sua variabile interna Nome. E' possibile definire un oggetto di tipo Test utilizzando il suo costruttore: Dim Prova As New Test("Marco") Mentre le Sub e le Function sono rimaste sostanzialmente immutate, la creazione di proprietà di una classe è diversa rispetto alle versioni precedenti. In VB6 si usavano due metodi, Property Set e Property Let, rispettivamente per assegnare e recuperare il valore di una proprietà. In VB.NET, invece, è stato tutto riunito in un unico metodo, che include sia il codice per recuperare sia quello per impostare il valore di una proprietà; ad esempio: Public Property NomeUtente() As String Get Return Nome End Get Set(ByVal Value As String) Nome = Value End Set End Property Come si vede, questa proprietà è composta da due parti: il blocco Get, delimitato da Get End Get, e il blocco Set (Set End Set). A parte queste differenze sintattiche, il comportamento dei due blocchi è quello che ci si aspetta: con Get si restituisce il valore della proprietà, mentre con Set si specifica un valore per essa. L'utilizzo di una proprietà così creata rimane lo stesso. Nella definizione di una routine, oltre a Public o Private, in VB.NET è possibile usare, tra le altre, la nuova parola chiave Protected ; per maggiori informazioni sulle altre parole chiave si consiglia di consultare la Guida in linea di Visual Basic.NET. Definendo una routine di una classe come Public, essa sarà visibile da tutti le istanze di quella classe; se, invece, si usa la parola chiave Private, tale routine non sarà utilizzabile all'esterno della classe. Ad esempio:

5 Public Class Test '... '... Public Sub VisualizzaData() '... Private Function Formatta() As String '... End Function End Class Dim Prova As New Test() Prova.VisualizzaData() 'Corretto. Prova.Formatta() 'Errato: non è possibile accedere alla funzione Formatta, perché è Private. Infine, dichiarando una routine della classe Test come Protected, essa sarà visibile a tutte le classi che ereditano da Test (questo concetto verrà chiarito meglio nelle prossime Lezioni, quando si affronteranno i concetti di ereditarietà, polimorfismo e overloading); questa routine non potrà però essere utilizzata dalle istanze della classe. In pratica, Protected equivale a Private, con la differenza che il metodo è visibile anche alle classi che ereditano da quella principale. Più classi possono essere raggruppate in un unico Namespace. Ad esempio: Namespace Test Class Test1 '... End Class Class Test2 '... End Class End Namespace Con questo costrutto, per dichiarare un oggetto di tipo Test1 è necessario scrivere, ad esempio: Dim Prova1 As New Test.Test1() Analogamente, per oggetti di tipo Test2: Dim Prova2 As New Test.Test2() Fatto questo, è possibile accedere ai metodi ed alle proprietà delle classi Test1 e Test2 nel modo consueto. I namespace sono sempre Public, mentre i componenti all'interno possono essere Public o Friend (impostazioni predefinita). E' possibile definire un namespace dentro un altro, ad esempio: Namespace N1 Namespace N2 Class Test1 '... End Class Class Test2 '... End Class End Namespace End Namespace Dim Prova1 As New N1.N2.Test1() Dim Prova2 As New N1.N2.Test2() Tutte le classi che compongono la piattaforma.net sono organizzate in namespace. Ad esempio, la classe Form, da cui ereditano tutti i Windows form (argomento della Lezione 8) è raggiungibile nel namespace Windows.System.Forms.Form. A questo punto si hanno tutti gli strumenti necessari per analizzare le caratteristiche di VB.NET che ne fanno un linguaggio di programmazione orientato agli oggetti: nelle prossime Lezioni parleremo di ereditarietà, polimorfismo ed overloading.

6 Ereditarietà Abbiamo detto più volte che Visual Basic.NET è un linguaggio di programmazione orientato agli oggetti. Avendo bene in mente il concetto di classe, analizziamo le caratteristiche fondamentali di questo paradigma di programmazione: ereditarietà, polimorfismo ed overloading. Si definisce ereditarietà la possibilità per una classe (detta classe derivata) di derivare da un'altra (la classe base), in modo tale che il tipo derivato possa utilizzare le variabili, i metodi, ecc. del tipo base. La parola chiave utilizzata per creare una relazione di eredità è Inherits; questa istruzione deve obbligatoriamente essere sulla prima riga di codice dopo la definizione della classe. Si consideri l'esempio seguente: Public Class Persona Protected snome As String Private itelefono As Integer '... Public Property Nome() As String Get Return snome End Get Set(ByVal Value As String) snome = Value End Set End Property End Class Public Class Impiegato Inherits Persona Private smatricola As String '... Public Property Matricola() As String Get Return smatricola End Get Set(ByVal Value As String) smatricola = Value End Set End Property End Class In questo stralcio di codice la classe Impiegato eredita dalla classe Persona: questo significa che nella classe Impiegato è possibile utilizzare tutto ciò che in Persona è stato definito come Public, Protected o Friend, sia esso una variabile, una Sub, una Function o una Property. Ad esempio, all'interno di Impiegato è possibile utilizzare sia la variabile snome sia la proprietà Nome, mentre la variabile itelefono non è visibile. Provando a dichiarare oggetti di tipo Persona e Impiegato, si ottiene quanto segue: Dim Imp As New Impiegato() Imp.Matricola = "389321" 'Corretto: Matricola è una property della classe impiegato. Imp.Nome = "Marco" 'Corretto: Nome è una property che la classe Impiegato eredita da Persona. Dim Pers As New Persona() Pers.Nome() = "Marco" 'Corretto: Matricola è una property della classe Persona. Pers.Matricola = "389321" 'Errato: la property Matricola non è visibile alla classe Persona. Se ora commentia mo la riga Inherits Persona nella classe Impiegato, otterremo un messaggio di errore relativo all'istruzione Imp.Nome = "Marco", dal momento che abbiamo eliminato l'ereditarietà. Polimorfismo l termina polimorfismo indica la possibilità di definire all'interno di più classi metodi e proprietà con lo stesso nome, in modo che, ad esempio, una classe derivata possa ridefinire un metodo della classe base con lo stesso nome. Vediamo subito un esempio di quanto detto:

7 Public Class ProdottoBase Private Const diva As Decimal = 0.2 '... Public Overridable Function IVA(ByVal Prezzo As Decimal) As Decimal 'Calcola l'iva sul prezzo specificato. Return (Prezzo * diva) End Function End Class Public Class AltroProdotto Inherits ProdottoBase Private Const diva As Decimal = 0.18 Private Const Tassa As Decimal = 0.1 'Tassa sul prodotto. '... Public Overrides Function IVA(ByVal Prezzo As Decimal) As Decimal 'Calcola l'iva sul prezzo specificato e aggiunge la tassa sul prodotto. Return (Prezzo * diva) + (Prezzo * Tassa) End Function End Class Notiamo che la Function IVA è definita sia nella classe ProdottoBase sia nella classe AltroProdotto, che eredita da ProdottoBase. Il comportamento della funzione, tuttavia, è diverso, dal momento che in AltroProdotto all'iva viene aggiunta una tassa. A seconda che si dichiari un oggetto di tipo ProdottoBase o di tipo AltroProdotto, verrà richiamata la funzione IVA corrispondente. Per fare questo abbiamo usato il polimorfismo; la funzione IVA nella classe base è stata dichiarata usando la parola chiave Overridable: con essa si indica a Visual Basic che è possibile avere un'altra definizione per la stessa funzione in una classe derivata. In AltroProdotto, infatti, IVA è stata definita specificando Overrides: in tal modo si dice che tale funzione sovrascrive un metodo con lo stesso nome che è stato definito nella classe base. C'è anche un altro modo per sfruttare il polimorfismo, ovvero usando la parola chiave Shadows che, letteralmente, nasconde una definizione della classe base con lo stesso nome. L'esempio sopra riportato, usando Shadows, diventa: Public Class ProdottoBase Public Function IVA(ByVal Prezzo As Decimal) As Decimal ' End Function End Class Public Class AltroProdotto Inherits ProdottoBase Public Shadows Function IVA(ByVal Prezzo As Decimal) As Decimal ' End Function End Class Come si vede, nella classe base la parola chiave Overridable è sparita, mentre in AltroProdotto la Function IVA è preceduta da Shadows. E' importante notare che, usando la coppia Overridable e Overrides, il metodo che sovrascrive una routine della classe base deve avere non solo lo stesso nome, ma anche lo stesso numero di argomenti e dello stesso tipo. Invece, usando Shadows, è possibile ridefinire un metodo modificandone il tipo, il numero di argomenti, ecc; con Shadows si può addirittura nascondere una variabile della classe base con un intero metodo nella classe derivata. Questa rapida panoramica sul polimorfismo non può coprire tutti gli aspetti della tematica, per approfondire i quali si rimanda alla Guida in linea. I concetti forniti sono comunque più che sufficienti per utilizzare con successo il polimorfismo nei proprio programmi. Strettamente collegato con il polimorfismo è l'overloadi ng, altra importante caratteristica dei linguaggi di programmazione orientati agli oggetti, che sarà discussa nella prossima Lezione.

8 Overloading Overloading L'overloading, letteralmente sovraccaricamento, è la possibilità di definire più versioni di una procedura, utilizzando lo stesso nome ma un numero e/o un tipo diverso di argomenti: in fase di esecuzione, sulla base degli argomenti effettivamente passati alla routine, verrà richiamata la procedura corretta; nella Guida in linea di Visual Basic sono specificati con precisione i passi che il compilatore esegue per risolvere l'overloading, cioè per determinare qual è la routine corretta da richiamare. Cerchiamo con un esempio di capire come funziona l'overloading: Public Class Test '... Public Sub Prova(ByVal Nome As String) MsgBox("Il nome specificato è: " & Nome & ".") Public Sub Prova(ByVal Numero As Integer) MsgBox("Il numero specificato è: " & Numero & ".") End Class Le due definizioni della Sub Prova differiscono per il tipo dell'argomento: String nel primo caso, Integer nel secondo. Se ora creiamo un'istanza della classe e proviamo a richiamare la routine Prova, otteniamo: Dim T As New Test() T.Prova("Marco") 'Visualizza il messaggio "Il nome specificato è: Marco." T.Prova(104) 'Visualizza il messaggio "Il numero specificato è: 104." Per indicare che una routine sfrutta l'overloading, ovvero che sono presenti più definizioni per la stessa, si dovrebbe specificare la parola chiave Overloads, nel modo seguente: Public Overloads Sub Prova(ByVal Nome As String) Public Overloads Sub Prova(ByVal Numero As Integer) Tuttavia, il parametro Overloads è predefinito, quindi anche omettendolo (come abbiamo fatto nella classe di esempio sopra riportata), Vis ual Basic sarà in grado di gestire correttamente l'overloading. Un utilizzo classico dell'overloading è nella definizione di un costruttore per una classe (abbiamo parlato del costruttore quando abbiamo introdotto il concetto di classe, nella Lezione 3). Supponiamo di avere una classe Giocatore, che, tra le altre cose, contiene il nome del giocatore: si vorrebbe dare la possibilità di definire il nome del giocatore nel momento in cui si crea un'istanza della classe; se il nome non viene specificato, dovrebbe essere impostato su "Anonimo". E' possibile realizzare quanto detto con l'overloading del costruttore: Public Class Giocatore Private NomeGiocatore As String Sub New() NomeGiocatore = "Anonimo" Sub New(ByVal snome As String) NomeGiocatore = snome '... End Class Supponiamo inoltre di avere una Property Nome che restituisce il nome del giocatore. Stando così le cose, creando un'istanza della classe otterremo, ad esempio: Dim G As New Giocatore() 'Non si specifica il nome del giocatore: verrà richiamato il costruttore "New()". MsgBox(G.Nome) 'Visualizza "Anonimo". Dim G2 As New Giocatore("Marco") 'Si specifica il nome del giocatore: verrà richiamato il costruttore '"New(ByVal snome As String)". MsgBox(G2.Nome) 'Visualizza "Marco". Notiamo che, nel caso di overloading del costruttore, non si deve mai utilizzare la parola chiave Overloads, altrimenti si

9 ottiene un messaggio di errore. Ora che abbiamo analizzato le principali novità di Visual Basic.NET, è finalmente possibile cominciare ad utilizzare nella pratica questo linguaggio: nella prossima Lezione verrà introdotto brevemente il nuovo ambiente di sviluppo di Visual Studio. Il nuovo ambiente di sviluppo Sebbene sia possibile creare applicazioni VB.NET utilizzando un qualsiasi editor di testo e il compilatore da riga di comando che Microsoft distribuisce gratuitamente sul proprio sito Internet, Visual Studio.NET offre una serie di strumenti che permettono di incrementare molto la produttività: consente di realizzare applicazioni in modo grafico, semplicemente trascinando e posizionando sul form gli elementi che si vogliono usare, dispone di tecnologie come il completamento automatico per velocizzare la scrittura del codice, ecc. Il nuovo ambiente di sviluppo di Microsoft, denominato Microsoft Development Environment, presenta cambiamenti significativi rispetto alle versioni precedenti di Visual Studio: ora è un ambiente integrato che racchiude gli editor per tutti i linguaggi di programmazione supportati dalla piattaforma.net. E' possibile realizzare applicazioni utilizzando più linguaggi all'interno della stessa soluzione (vedremo più avanti cosa si intende per "soluzione"). I diversi linguaggi di programmazione condividono anche la stessa organizzazione dei file sorgenti: essa risulterà familiare a chi ha già usato le precedenti versioni di Visual Studio, mentre potrebbe inizialmente disorientare coloro che hanno programmato solo con Visual Basic; in realtà è possibile trovare alcuni parallelismi tra l'organizzazione dei file di VB 6 e quella di Visual Studio.NET. Come già accennato nella prima lezione, i file sorgente di VB.NET hanno tutti estensione.vb, indipendentemente dal fatto che siano form, moduli o moduli di classi. I sorgenti di una stessa applicazione sono raggruppati in progetti, proprio come nelle precedenti versioni. Infine, più progetti possono essere inseriti all'interno della stessa soluzione, concetto che si avvicina abbastanza al gruppo di progetti di VB 6; la differenza sta nel fatto che nella medesima soluzione è possibile includere progetti realizzati con diversi linguaggi di programmazione. Avviando per la prima volta Visual Studio.NET, verranno visualizzate nella parte centrale della finestra una serie di opzioni utili per personalizzare l'ambiente di sviluppo; esse saranno comunque accessibili anche in futuro all'interno della finestra Opti ons (Opzioni), raggiungibile con un clic sul menu Tools (Strumenti). Dopo aver effettuato le personalizzazioni del caso, facendo clic sul pulsante New Project (Nuovo progetto), verrà visualizzata la finestra di dialogo omonima in cui, sulla sinistra, è visibile una lista ad albero con una voce principale per ogni tipo di progetto che è possibile realizzare con Visual Studio.NET. Selezionando Visual Basic projects (Progetti Visual Basic) sulla destra comparirà l'elenco dei tipi di applicazioni Visual Basic: Windows Application (Applicazione Windows) corrispondente all'exe Standard delle versioni precedenti. In questa stessa finestra è anche possibile specificare il nome dell'applicazione e la posizione in cui salvarla. Accettiamo le impostazioni di default con un clic sul pulsante OK; verrà creata un'applicazione per Windows composta da un Windows form: con questo termine si indica l'evoluzione del classico form di Visual Basic (la Windows form sarà argomento della prossima Lezione). La struttura dei file che compongono la soluzione dovrebbe risultare simile a quella raffigurata nella figura seguente: La finestra mostrata è il Solution Explorer, che funziona in modo analogo alla Gestione progetti delle precedenti versioni di Visual Basic.

10 Facendo doppio clic sul nome della form (Form1.vb) sarà visualizzata la finestra per l'immissione del codice sorgente; in alternativa al doppio clic è possibile premere il tasto F7. L'editor del codice di Visual Basic.NET presenta innovazioni significative rispetto alle versioni precedenti, tutte rivolte all'aumento della produttività dello sviluppatore. Tra le nuove funzioni si segnalano in particolare l'indentazione automatica del codice durante la digitazione e la "chiusura automatica" dei costrutti, per cui, ad esemp io, se si scrive un condizione If e si preme il tasto Invio, l'editor aggiungerà la clausola End If e posizionerà il cursore nella posizione corretta per la scrittura del codice facente parte dell'if stesso. Altre novità importanti sono relative all'organizzazione del codice sorgente: ora le varie parti del codice possono essere collassate ed espanse facendo clic rispettivamente sul simbolo - (meno) e + (più) che viene automaticamente visualizzato a destra delle dichiarazione di un metodo, di un insieme di righe di commento, ecc. Inoltre, attraverso il nuovo costrutto #Region... #End Region è possibile organizzare logicamente porzioni di codice che svolgono operazioni correlate. Ad esempio, all'interno di una classe: #Region " Matematica " Private Function Somma(ByVal A As Double, ByVal B As Double) As Double Return A + B End Function Private Function Sottrazione(ByVal A As Double, ByVal B As Double) As Double Return A - B End Function #End Region Scrivendo questo codice, accanto alla riga #Region " Matematica " comparirà il segno - (meno); se ora proviamo a fare clic su tale simbolo, tutta la sezione di codice compresa in questa regione verrà collassata nell'unica riga " Matematica ". Le novità di Visual Studio.NET non si fermano qui: è anche possibile personalizzare l'ambiente di sviluppo tramite macro scritte con Visual Basic for Applications, utilizzando un editor analogo a quello disponibile in Office. La Lista dei task, inoltre, oltre a visualizzare gli errori presenti nel programma, consente di definire delle annotazioni all'interno del codice in modo da evidenziare, ad esempio, i punti da correggere, quelli da rivedere, le modifiche effettuate, ecc. Facendo doppio clic sull'annotazione visualizzata in questa finestra, verrà automaticamente selezionata la riga di codice corrispondente. La Windows form parte prima Visual Basic.NET introduce un nuovo oggetto, la Windows form, che prende il posto del form delle versioni precedenti; i cambiamenti riguardano in particolare le funzionalità, le nuove caratteristiche e i nuovi metodi supportati. Le Windows form sono il componente fondamentale della piattaforma Microsoft.NET, rispondendo a quelli che sono i requisiti del paradigma della programmazione orientata agli oggetti. Esse consentono di sfruttare in maniera estremamente semplice tutte le caratteristiche di Windows 2000 e XP. Per utilizzare le Windows form è necessario creare una Windows Application (Applicazione Windows), come abbiamo visto. Per aggiungere nuove form al progetto, fare clic con il tasto destro del mouse sul nome del progetto all'interno del Solution Explorer e scegliere Add (Aggiungi), quindi selezionare Add Windows form (Aggiungi Windows form). La Windows form è concettualmente molto diversa dalla form di Visual Basic 6. Innanzi tutto nel codice di una Windows form possiamo notare la Sub New, che come abbiamo detto definisce il costruttore della classe: una Windows form, infatti, è prima di tutto una classe, quindi per essa valgono tutte le considerazioni fatte in precedenza. Da notare che tale Sub non è direttamente visibile nel codice, ma è contenuta all'interno della regione Windows form designer generated code (Codice generato dal Windows form designer). Sotto la definizione della form, Public Class Form1, compare l'istruzione Inherits System.Windows.Forms.Form: si tratta della classe base da cui ereditano tutte le Windows form. Essa fa parte della base class library, la libreria classi base di.net. Come si può vedere da tale istruzione, la classe Form è contenuta nel namespace System.Windows.Forms. Altra novità rispetto alle versioni precedenti di Visual Basic è la routine InitializeComponent, che contiene la definizione e le proprietà di tutti gli elementi dell'interfaccia della form: mentre prima tali informa zioni erano contenute nell'intestazione del file.frm e non erano direttamente modificabili da Visual Basic, ora sono chiaramente visibili aprendo il codice della Windows form all'interno di Visual Studio.NET. La routine New può essere usata per replicare le funzionalità dell'evento Form_Initialize, scrivendo il proprio codice dopo la chiamata a InitializeComponent. Facendo doppio clic sulla form, verrà aperto l'editor del codice all'interno della routine Form1_Load, il cui significato è lo stesso che aveva in VB 6. Dopo la lista degli argomenti dell'evento, di cui parleremo tra breve, si può notare un nuovo

11 costrutto: Handles MyBase.Load. Con questa istruzione si indica a Visual Basic che la routine appena dichiarata gestisce l'evento Load del form; MyBase è una parola chiave che permette di riferire la classe in cui ci si trova attualmente (abbiamo infatti detto che la Windows form è una classe). La conseguenza di questa novità è che i nomi degli eventi in VB.NET non sono più vincolati: è possibile creare Sub con qualsiasi nome, a patto naturalmente che prevedano la corretta lista degli argomenti, e poi associarli a determinati eventi con il costrutto Handles oggetto.evento. Ad esempio, l'evento Load del form potrebbe essere gestito da una Sub Avvio così definita: Private Sub Avvio(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load MsgBox("Hello World!") Dopo aver scritto questo codice, eseguiamo il programma, premendo come di consueto il tasto F5: se non ci sono stati errori di digitazione, verrà visualizzata la seguente finestra: E' importante notare una cosa: a causa di un bug di Visual Studio.NET, potrebbe succedere che, premendo il tasto F5, il programma venga compilato ma non eseguito. In questo caso è sufficiente premere il tasto, quindi il tasto per avviare correttamente il programma. Vediamo ora le differenze negli argomenti inviati ad un evento. Innanzi tutto, in VB.NET tutti gli eventi prevedono degli argomenti, a differenza di quanto avveniva nelle versioni precedenti di Visual Basic, in cui eventi del tipo Form_Click e lo stesso Form_Load non avevano alcun argomento. Il primo argomento è sempre di tipo System.Object e permette di identificare l'oggetto che ha generato l'evento: questa informazione è utile, ad esempio, perché con la parola chiave Handles è possibile associare più oggetti alla stessa routine. Ad esempio, inseriamo due pulsanti sulla form, quindi premiamo il tasto F7 per visualizzare il codice del form e scriviamo: Private Sub Clic(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click, Button2.Click If sender.equals(button1) Then MsgBox("E' stato fatto clic sul pulsante Button1.") ElseIf sender.equals(button2) Then MsgBox("E' stato fatto clic sul pulsante Button2.") End If La lista degli argomenti richiesti da un certo evento è disponibile nella Guida in linea di Visual Basic.NET. Dopo la parola chiave Handles sono stati specificati due eventi, separati da una virgola; in generale, è possibile specificarne un numero arbitrario, a patto che richiedano gli stessi argomenti. Poiché la Sub Clic viene generata indifferentemente quando si fa clic su Button1 o su Button2, è necessario usare l'oggetto sender per sapere quale dei due pulsanti è stato in realtà premuto; per fare questo, si usa il metodo Equals dell'oggetto, che prende come argomento un altro oggetto e restituisce True se i due oggetti sono uguali. Il secondo argomento, nel caso dell'evento Load, è di tipo EventArgs, anche se a seconda del tipo di evento può essere diverso; ad esempio, nel caso degli eventi KeyDown, KeyUp, è di tipo System.Windows.Forms.KeyEventArgs. Esso contiene informazioni di vario genere, dipendenti dal particolare tipo di evento a cui si riferisce. Per fare un esempio, proviamo a intercettare l'evento KeyPress della form; Innanzi tutto posizioniamoci sull'evento relativo. All'interno della finestra del codice, fare clic sulla ComboBox in alto a sinistra e selezionare (base class events): tale categoria raggruppa tutti gli eventi della classe base; fatto questo, nel ComboBox in alto a destra comparirà la scritta (Declarations): fare clic su quest'ultima e scorrere l'elenco fino a selezionare l'evento KeyPress. All'interno dell'editor verrà automaticamente aggiunta la seguente Sub per gestire l'evento: Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress Supponiamo di voler stampare un messaggio diverso a seconda che si digiti una consonante o una vocale. Il codice è: Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress Select Case e.keychar Case "A", "E", "I", "O", "U", "a", "e", "i", "o", "u" MsgBox("E' stata digitata una vocale.")

12 Case Else MsgBox("E' stata digitata una consonante.") End Select L'oggetto e, di tipo KeyPressEventArgs, contiene informazioni sul carattere premuto; in particolare, la proprietà KeyChar restituisce il carattere che è stato digitato. Quanto detto relativamente agli eventi è valido per la form, ma più in generale per tutti i controlli di Visual Basic.NET. Nella prossima Lezione continueremo l'analisi delle principali novità introdotte dalla Windows form. La Windows form parte seconda Continuiamo la nostra breve analisi delle nuove caratteristiche della Windows form di VB.NET. Una delle cose più importanti da notare è che la proprietà Caption è stata rinominata in. Più in generale, le proprietà Caption di tutti i controlli sono state sostituite dalla proprietà ; a parte il nome diverso, comunque, le due proprietà sono assolutamente analoghe. Abbiamo detto che una Windows form è una classe: è quindi possibile creare oggetti di tipo form e lavorare con essi come con qualunque altro oggetto. In particolare, quando si vuole aprire una form sopra un altro, è necessario prima dichiarare un oggetto che abbia come tipo la form da visualizzare. Cerchiamo di spiegare meglio questo concetto con un esempio. Dopo aver creato una nuova soluzione aggiungiamo un secondo form al progetto corrente, oltre a quello che viene creato di default (e che ha nome Form1). Per fare questo, fare clic con il tasto destro del mouse sul nome del progetto all'interno del Solution Explorer e scegliere Add (Aggiungi), quindi selezionare Add Windows form (Aggiungi Windows form). Confermare le impostazioni della finestra di dialogo Add New Item (Aggiungi nuovo elemento) con un clic sul pulsante Open (Apri). Il nome del nuovo form è Form2. Ora aggiungiamo un pulsante sul Form1: l'oggetto CommandButton è stato rinominato in Button; impostiamone la proprietà su "Apri secondo form". Facciamo quindi doppio clic sul pulsante per generare la routine che gestisce l'evento clic e scriviamo il codice seguente: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim frm As New Form2() 'Visualizza il Form2. frm.showdialog() La prima dichiarazione definisce un nuovo oggetto frm di tipo Form2 e, tramite la parola chiave New, ne crea una nuova istanza. L'istruzione successiva richiama il metodo ShowDialog di frm: esso corrisponde, nelle precedenti versioni di Visual Basic, al metodo Show con il parametro vbmodal, cioè visualizza il Form2 e blocca l'esecuzione di Form1 finché Form2 non viene chiuso. Invece, se vi vuole visualizzare il Form2 senza fermare Form1, è necessario richiamare il metodo Show di frm. L'evento QueryUnload è stato rinominato in Closing. Mentre in VB6, per annullare la chiusura della form, era necessario impostare su True la variabile Cancel che faceva parte degli argomenti di QueryUnload, per ottenere lo stesso effetto in VB.NET si deve agire sulla proprietà e.cancel, come potete osservare dall'esempio seguente: Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing 'Annulla la chiusura del form. e.cancel = True Per chiudere una form è necessario richiamare il metodo Close della form stessa. Ad esempio, per fare in modo che premendo il pulsante Button1 la finestra venga chiusa, si deve scrivere il codice seguente: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() La Windows form introduce numerose nuove proprietà, consentendo di realizzare facilmente operazioni che prima erano possibili sono utilizzando le API di Windows, come impostare le dimensioni massima e minima della finestra (per determinare le quali sono disponibili rispettivamente le proprietà MaximumSize e MinimunSize). Non essendo possibile analizzarle tutte, ci limiteremo ad illustrare le più importanti e quelle che hanno subito cambiamenti rispetto alla versione precedenti di Visual Basic. Innanzi tutto, le proprietà AcceptButton e CancelButton consentono di impostare il pulsante il cui codice si vuole venga eseguito, rispettivamente, quando si premono i

13 tasti Invio oppure Esc. In pratica, queste due proprietà sostituiscono le precedenti Accept e Cancel del controllo CommandButton. Per impostare tali proprietà, fare clic sulla freccia posta sulla destra di AcceptButton oppure CancelButton nella finestra delle Proprietà: verrà visualizzata una lista da cui è possibile selezionare il pulsante che si vuole associare. La proprietà BorderStyle è stata rinominata in FormBorderStyle, ma a parte il cambiamento di nome non ha subito altre modifiche. La proprietà Menu consente di impostare un menu per il form. Anche il menu e i comandi di menu, infatti, in VB.NET sono trattati come oggetti. Questa proprietà viene esposta perché è possibile definire più oggetti di tipo Menu nell'applicazione, visualizzando di volta in volta quello opportuno, ad esempio in risposta a determinate azioni dell'utente. I menu in VB.NET saranno trattati nella Lezione 13. Opacity consente di imp ostare la percentuale di trasparenza della form. La proprietà StartUpPosition è stata rinominata in StartPosition; la proprietà CenterOwner ora si chiama CenterParent. TransparentKey permette di definire un colore che apparirà trasparente quando verrà disegnato sulla form. Ci sono poi altre nuove proprietà supportate dalla form e dai controlli standard. Analizziamo anche in questo caso le più significative. La proprietà BackgroundImage consente di impostare un'immagine di sfondo. Se il file selezionato ha dimensioni inferiori a quelle del form, verrà automaticamente affiancato fino a coprire l'intera finestra. La proprietà Cursor sostituisce la proprietà MousePointer. Per impostare un cursore è necessario utilizzare la classe Cursors, come mostrato nell'esempio seguente: Me.Cursor = Cursors.WaitCursor 'Imposta la clessidra. Me.Cursor = Cursors.Default 'Ripristina il puntatore predefinito. Una proprietà completamente nuova è ContextMenu, con cui è possibile associare un menu contestuale alla form, cioè un menu che viene automaticamente richiamato quando si fa clic sulla form con il tasto destro del mouse. Ritorneremo su questo argomento quando parleremo della nuova gestione dei menu in VB.NET, nella Lezione 13. Ora che abbiamo preso familiarità con la Windows form, possiamo analizzare le novità dei controlli standard di VB.NET, che saranno trattate a partire dalla prossima Lezione. Box Non possiamo descrivere in questa sede tutti i controlli di Visual Basic.NET; i soli controlli standard, infatti, sono almeno 45, contro i 20 di Visual Basic 6. Di conseguenza, ci limiteremo ad analizzare i nuovi oggetti introdotti da VB.NET e, brevemente, quelli che presentano cambiamenti significati rispetto alle versioni precedenti. Per ogni controllo analizzato, cominceremo con l'esporre le nuove proprietà e i nuovi metodi di cui dispone; potrebbe sembrare un approccio noioso, ma dato che la maggior parte delle proprietà e dei metodi hanno cambiato nome da VB 6 a VB.NET, questo è l'unico modo per evitare di non ritrovare più quello che serve quando si lavora con il nuovo ambiente di sviluppo. Uno dei controlli maggiormente potenziati è la Box. La prima cosa da far notare è che è stato finalmente superato il limite dei caratteri circa visualizzabili: ora è possibile, teoricamente, inserire fino a 2 GB di informazioni in una singola casella di testo. Una delle proprietà più interessanti, peraltro comune a tutti i controlli, è la proprietà Anchor, che consente di adattare il controllo alle dimensioni della finestra. Per impostarla, fare clic sulla freccia visualizzata a destra di tale proprietà: comparirà una piccola finestra in cui selezionare, con un clic del mouse, i bordi della finestra a cui si vuole ancorare il controllo. L'impostazione predefinita è Top, Left, cioè il controllo ancorato al bordo sinistro in alto: in pratica l'oggetto non viene adattato alle dimensioni della finestra, ma resta fisso nella sua posizione. Proviamo ad inserire una Box sulla form, in una posizione qualsiasi, e ad impostare la sua proprietà Anchor su Top, Left, Right. Se ora proviamo a ridimensionare il form, anche in fase di progettazione, noteremo che la casella di testo di allunga o si riduce in accordo alle dimensioni della finestra. Analogamente, se posizioniamo la Box nella parte bassa del form e impostiamo Anchor su Bottom, Left, essa rimarrà sempre alla stessa distanza dal bordo inferiore della finestra, qualunque dimensione essa abbia. Passando alle proprietà specifiche della Box, AcceptsReturn e AcceptsTab consentono di stabilire se il controllo deve accettare, rispettivamente, i caratteri Invio e Tab. Ad esempio, la prima proprietà è utile quando si ha un controllo multilinea e si vuole fare in modo che, premendo il tasto Invio, venga inserita una nuova linea di testo; se, invece, AcceptsReturn è False (impostazione predefinita), premendo Invio verrà attivato il pulsante di default della form. AcceptsTab deve essere impostata su True se si vuole dare la possibilità di inserire caratteri di tabulazione nella Box, altrimenti la pressione del tasto Tab sposterà lo stato attivo sul controllo successivo. Altra proprietà importante è Lines, che consente di definire le righe di testo della casella, nel caso in cui la proprietà MultiLine sia impostata su True. Facendo clic sul pulsante con i tre puntini in corrispondenza della proprietà Lines, verrà visualizzato la finestra di dialogo String Collection Editor, in cui è possibile digitare le righe che si vogliono visualizzare, separate da Invio.

14 Per quanto riguarda i metodi, citiamo qui solo i più interessanti, rimandando alla consultazione della Guida in linea per l'elenco completo. Il metodo Append aggiunge il testo specificato alla fine del contenuto nella Box. I metodi Copy, Cut e Paste, rispettivamente, permettono di copiare, tagliare ed incollare il testo: le operazioni con gli Appunti di Windows, che prima si realizzavano tramite l'oggetto Clipboard, ora sono accessibili come metodi della Box. Il metodo Focus, comune a tutti i controlli, consente di spostare lo stato attivo sull'oggetto su cui viene richiamato. Il metodo Undo, infine, annulla l'ultima operazione e, di fatto, equivale alla pressione della combinazione di tasti CTRL+Z. Vediamo ora quali sono i principali eventi del controllo Box e come si gestiscono. L'evento Change è stato rinominato in Changed. Ma gli eventi su cui vale la pena spendere qualche parola sono KeyDown, KeyUp e KeyPress: analizziamoli ricordando che le considerazioni che verranno fatte sono valide per tutti i controlli che possono generare gli eventi KeyDown, KeyUp e KeyPress. Per quanto riguarda i primi due, nelle precedenti versioni di Visual Basic essi avevano come parametri KeyCode e Shift, che permettevano di sapere quale carattere era stato premuto e, controllando il valore di Shift, se in combinazione con ALT, CTRL o SHIFT; inoltre, scrivendo all'interno dell'evento KeyCode = 0, era possibile annullare la digitazione. Tutte queste informazioni, in VB.NET, sono contenute nel parametro e, che è di tipo System.Windows.Forms.KeyEventArgs: Private Sub Box1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Box1.KeyUp In particolare, per quanto riguarda gli eventi KeyUp e KeyDown, l'oggetto e espone le proprietà KeyCode, Alt, Control e Shift, utili per sapere quale carattere è stato premuto e se in combinazione con i tasti ALT, CTRL o SHIFT. Considerate l'esempio seguente: Private Sub Box1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Box1.KeyUp If e.keycode = Keys.F And e.shift = True Then MsgBox("Premuta la combinazione SHIFT+F.") End If Keys è un'enumerazione di tutti i caratteri della tastiera e può quindi essere utilizzato per sapere quale carattere è stato premuto: in questo esempio si controlla se e.keycode è uguale a Keys.F, cioè se è stato premuto il carattere F. e.shift = True, invece, è usato per sapere se insieme al tasto F è stato premuto anche SHIFT. Il parametro e dell'evento KeyPress, invece, espone tra le altre le proprietà KeyChar e Handled; la prima contiene la rappresentazione in formato stringa del carattere premuto, mentre l'altra consente di dire a Visual Basic che l'evento KeyPress è gestito, cioè che non si vuole visualizzare il carattere premuto nella Box perché sono state fatte altre elaborazioni: in pratica, equivale a porre KeyAscii = 0 nell'evento KeyPress delle precedenti versioni di Visual Basic. E' arrivato il momento di concretizzare quanto abbiamo detto finora con un esempio pratico. Realizziamo un'ipotetica finestra per il login di un'applicazione: per essere riconosciuto come valido, un utente deve digitare nome utente e password corretti (nel nostro esempio saranno rispettivamente utente e pass); vogliamo però prevedere anche un funzione di emergenza, in modo tale che sia possibile entrare anche se ci si dimentica la password. Nel nostro caso faremo una cosa molto semplice: la procedura di emergenza consiste nel digitare il nome pippo e premere la combinazione di tasti SHIFT+E. Iniziamo quindi a realizzare l'esempio, inserendo i controlli nella form in modo da ottenere una finestra simile a quella riprodotta a lato. Nella tabella qui sotto sono riportati i nomi dei controlli utilizzati con i valori delle proprietà da modificare: Nome controllo (tipo) Proprietà Valore Label1 (Label) AutoSize True Nome utente: Box1 (Box) <Vuoto> Label2 (Box) Box2 (Box) Button1 (Button) Autosize PasswordChar Enable True Password: * ><vuoto> False OK Form1 (Form) AcceptButton Button1

15 FormBorderStyle MaximizeBox MinimizeBox FivedSingle False False Login E' il momento di scrivere il codice. Innanzi tutto, vogliamo che il pulsante OK venga attivato solo quando sono stati immessi sia il nome utente sia la password. Questo comportamento si ottiene con il codice seguente: Private Sub Box1_Changed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Box1.Changed 'La proprietà "Length" è usata per recuperare la lunghezza del testo digitato. If Box1.Length > 0 And Box2.Length > 0 Then Button1.Enabled = True Else Button1.Enabled = False End If Private Sub Box2_Changed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Box2.Changed 'La proprietà "Length" è usata per recuperare la lunghezza del testo digitato. If Box1.Length > 0 And Box2.Length > 0 Then Button1.Enabled = True Else Button1.Enabled = False End If La proprietà Length restituisce il numero di caratteri contenuti nella casella di testo su cui viene invocata, e corrisponde alla funzione Len(testo) delle versioni precedenti di Visual Basic. La funzione di controllo del login è molto semplice: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Box1. = "utente" AndAlso Box2. = "pass" Then Me.Close() Else MsgBox("La password digitata non è valida.", MsgBoxStyle.Exclamation) Box1.Focus() End If Il significato del nuovo operatore AndAlso è stato spiegato nella lezione 2. A questo punto l'esempio è già operativo: avendo impostato la proprietà AcceptButton della form su Button1, è possibile attivare la routine Button1_Click semplicemente premendo il pulsante Invio (naturalmente quando il pulsante è attivo). Ma noi abbiamo deciso di prevedere anche una funzione di emergenza: Private Sub Box1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Box1.KeyDown If Box1. = "pippo" AndAlso e.shift = True AndAlso e.keycode = Keys.E Then MsgBox("E' stata usata la procedura di emergenza.", MsgBoxStyle.Information) Me.Close() End If Questa routine semplicemente controlla se, quando il contenuto di Box1 è pippo, viene premuta la combinazione SHIFT+E, nel qual caso visualizza un messaggio per informare l'utente che ha utilizzato la combinazione di emergenza. E' possibile scaricare il codice completo dell'esempio facendo clic qui. Nella prossima Lezione parleremo dei controlli PictureBox, Panel e GroupBox: il primo ha subito numerosi cambiamenti rispetto alle versioni precedenti, mentre il secondo è una novità di Visual Basic. NET; il controllo GroupBox, infine, sostituisce il vecchio Frame. I controlli PictureBox, Panel e GroupBox l controllo Image in Visual Basic.NET non esiste più: ora per visualizzare un'immagine all'interno di una form è possibile

16 utilizzare solo il controllo PictureBox. Anch'esso ha subito alcuni cambiamenti significativi. Innanzi tutto, la proprietà Picture, utilizzata per impostare l'immagine da visualizzare nel controllo, è stata rinominata in Image; per quanto riguarda i formati, è stato aggiunto il supporto ai file PNG ed alle GIF animate. La proprietà AutoSize è stata sostituita da SizeMode, che rispetto alla prima offre alcune possibilità in più: Normal è l'impostazione predefinita; StretchImage adatta le dimensioni dell'immagine perché possa essere interamente visualizzata all'interno del controllo; AutoSize ridimensiona la PictureBox sulla base della grandezza dell'immagine; CenterImage visualizza l'immagine centrata nella PictureBox. Per impostare la proprietà Image non è più disponibile il metodo LoadPicture; essa deve essere impostata su un oggetto di tipo System.Drawing.Bitmap: allo scopo è possibile utilizzare il metodo FromFile della classe appena citata. Ad esempio, l'istruzione: PictureBox1.Image = System.Drawing.Bitmap.FromFile("C:\Immagini\Cascate.bmp") Visualizza nella PictureBox l'immagine C:\Immagini\Cascate.bmp. Per eliminare l'immagine, è sufficiente porre la proprietà Image uguale a Nothing. Il controllo Panel è molto semplice da utilizzare. Si tratta di un controllo contenitore, cioè consente di definire un'area al cui interno è possibile inserire altri oggetti, che verranno logicamente considerati insieme, come facenti parte di un unico gruppo: ad esempio, nascondendo un controllo Panel, verranno automaticamente nascosti anche tutti i controlli in esso contenuti. Nelle precedenti versioni di Visual Basic, per raggruppare insieme alcuni oggetti era necessario inserirli all'interno di una PictureBox, che quindi aveva una doppia valenza (visualizzatore di immagini e contenitore). Per inserire oggetti in un controllo Panel è sufficiente selezionarli e trascinarli all'interno del controllo stesso: non è più indispensabile crearli direttamente nel contenitore, come accadeva con la PictureBox; analogamente, se si vuole portare un oggetto all'esterno del Panel, basta selezionarlo e spostarlo al di fuori di esso. Se si elimina un controllo Panel, verranno automaticamente eliminati anche tutti gli oggetti al suo interno. Le considerazioni fatte fin qui relativamente al Panel si applicano anche al GroupBox, controllo che prende il posto del vecchio Frame. Anch'esso è un controllo contenitore: la differenza rispetto al Panel è che il GroupBox definisce un'area delimitata e visibile in fase di esecuzione, mentre i bordi del controllo Panel sono invisibili a runtime. Realizziamo ora un piccolo esempio per impratichirci con i controlli appena analizzati. Oltre a Panel e PictureBox, utilizzeremo anche la RadioButton (nuovo nome dell'optionbutton) e la CheckBox. L'applicazione che andremo a creare è molto semplice: una PictureBox di cui si può impostare la proprietà SizeMode attraverso una serie di RadioButton; una CheckBox, inoltre, consente di stabilire se si vuole visualizzare o meno l'immagine. L'interfaccia che vogliamo realizzare è visibile a lato. Le proprietà da impostare sono le seguenti: Panel1 (Label) Nome controllo (tipo) Proprietà Valore RadioButton 1 (RadioButton) RadioButton 2 (RadioButton) RadioButton 3 (RadioButton) RadioButton 4 (RadioButton) CheckBox 1 (CheckBox) Checked Tag Tag Tag Tag Checked True 0 Normal 1 StretchImage 2 Autosize 3 CenterImage True Visualizza PictureBox 1 (PictureBox) SizeMode Normal Infine, impostiamo la proprietà Image della PictureBox su un'immagine di dimensioni minori di quelle della casella, cosicché sia possibile notare gli effetti della modifica della proprietà SizeMode. Cominciamo dalle cose più facili, cioè il codice associato al controllo CheckBox1. Vogliamo che, attivando o disattivando la casella di controllo, la PictureBox venga visualizzata oppure nascosta: Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged 'Visualizza o nasconde la PictureBox.

17 PictureBox1.Visible = CheckBox1.Checked L'evento CheckedChanged viene generato quando si modifica la selezione di una CheckBox, sia direttamente, con un clic sul controllo, sia via codice, impostando la proprietà Checked. Ora dobbiamo scrivere il codice per modificare la proprietà SizeMode della PictureBox a seconda della RadioButton che viene premuta. Il modo più semplice per farlo consiste nello scrivere quattro routine, una per controllo, ciascuna delle quali imposta SizeMode su un valore diverso. Vediamo qui, invece, una soluzione più sofisticata ed efficiente, che sfrutta una sola routine e l'oggetto sender: Private Sub Selection(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton1.Click, RadioButton2.Click, RadioButton3.Click, RadioButton4.Click PictureBox1.SizeMode = CInt(CType(sender, RadioButton).Tag) Cerchiamo di spiegare bene il significato di queste righe di codice. Innanzi tutto, dopo la parola chiave Handles sono stati specificati quattro eventi, corrispondenti agli eventi Click di ciascuna RadioButton: in tal modo si dice a Visual Basic di eseguire la routine Selection ogni volta che si preme il pulsante del mouse su una RadioButton. All'interno della routine, l'oggetto sender è usato per recuperare il particolare controllo che ha generato l'evento; sender è di tipo Object, da cui sono derivati tutti i tipi di Visual Basic.NET. Noi però sappiamo che in questo caso l'oggetto passato alla funzione è una RadioButton, quindi usiamo la funzione CType per convertirlo e poter utilizzare i metodi e le proprietà tipiche di una RadioButton. In generale, la sintassi della funzione CType è la seguente: CType(espressione, tipo) Dove espressione rappresenta quello che si vuole convertire (ad esempio un oggetto o una variabile), mentre tipo è il tipo di dato che vogliamo ottenere con la conversione. Tornando la nostro esempio, dopo aver convertito l'oggetto sender in RadioButton ne leggiamo la proprietà Tag, la trasformiamo in intero con CInt e la passiamo alla proprietà SizeMode della PictureBox1. E' da notare che, se non avessimo utilizzato la funzione CType, il codice avrebbe funzionato ugualmente, poiché VB avrebbe tentato una conversione implicita dell'oggetto sender. Utilizzando, invece, la funzione CType si forza una conversione esplicita: dove possibile, è sempre preferibile usare le conversioni esplicite piuttosto che quelle implicite, innanzi tutto perché rendono più chiaro il codice, poi perché consentono a Visual Basic di determinare univocamente il tipo di dati di un particolare oggetto. Il programma di esempio che abbiamo realizzato in questa Lezione può essere scaricato facendo clic qui. La prossima Lezione sarà dedicata ad una panoramica sui controlli ListBox, CheckedListBox e ComboBox: pur non essendo una novità, Visual Basic. NET ha introdotto numerosi cambiamenti relativamente al loro utilizzo. I controlli ListBox, CheckedListBox e ComboBox controlli ListBox, CheckedListBox e ComboBox erano già presenti in Visual Basic 6, anche se i primi due erano di fatto un unico oggetto: per visualizzare la caselle di spunta in una ListBox di VB 6 era necessario impostare la sua proprietà Style su 1 - CheckBox. In VB.NET, invece, ListBox e CheckedListBox sono due controlli separati, pur se con molti elementi in comune. Cominciamo quindi ad analizzare le proprietà che li accomu nano. La proprietà Items (disponibile anche nella ComboBox) consente di aggiungere o rimuovere elementi alla lista in modo molto più facile rispetto alle precedenti versioni di Visual Basic: premendo il pulsante con i tre puntini a destra di tale proprietà, verrà visualizzato l'item Collection Editor in cui è possibile digitare gli elementi, uno per riga. MultiColumn deve essere impostato su True se si vuole che gli elementi della ListBox o della CheckedListBox vengano visualizzati in colonne affiancate; in questo caso, la proprietà ColumnWidth consente di definire la larghezza delle colonne. La proprietà SelectionMode sostituisce ed estende la proprietà MultiSelect. Per quanto riguarda le proprietà della ComboBox, la proprietà Style è stata rinominata in DropDownStyle. DropDownWidth consente di definire la larghezza, in pixel, dell'elenco a discesa. E' possibile anche impostare il numero di elementi da visualizzare in tale elenco, agendo sulla proprietà MaxDropDownItems. Passando ai metodi, è interessante notare come questi controlli siano stati notevolmente potenziati, con l'aggiunta di funzionalità che prima erano disponibili solo utilizzando le API di Windows. Nel seguito faremo riferimento alla ListBox, ricordando però che le considerazioni che verranno fatte, salvo diversa indicazione, sono valide per tutti e tre i controlli oggetto di questa Lezione. Per lavorare con gli elementi di una ListBox è necessario utilizzare i metodi della collezione Items del controllo. Ad esempio, per aggiungere un elemento ad una ListBox di nome ListBox1 è necessario scrivere: ListBox1.Items.Add("Nuovo elemento") Per rimuovere una voce sono disponibili i metodi Remove e RemoveAt: il primo consente di rimuovere l'oggetto specificato,

18 in qualunque posizione si trovi, mentre il secondo cancella l'elemento nella posizione specificata. Ad esempio, ListBox1.Items.Remove ("Testing") rimuove l'elemento di nome Testing dalla ListBox, mentre ListBox1.Items.RemoveAt(5) elimina la sesta voce dell'elenco (ricordiamo che si inizia a contare da 0). E' da notare che se, nel primo caso, l'elemento Testing non esiste, non viene comunicato alcun messaggio, mentre se, nel secondo caso, la lista ha meno di sei elementi, si genera un errore. Altro metodo importante della collezione Items è Contains, che restituisce True se l'elemento specificato come argomento è presente nella lista, False altrimenti. Per recuperare l'elemento attualmente selezionato nella ListBox si può usare la proprietà SelectedItem; l'indice corrispondente è conservato in SelectedIndex. Se si vogliono scorrere gli elementi selezionati è possibile usare le collezioni che gli oggetti ListBox, CheckedListBox e ComboBox mettono a disposizione; il seguente esempio mostra come conoscere gli elementi attualmente selezionati in una CheckedListBox: Dim Elemento As String For Each Elemento In CheckedListBox1.CheckedItems MsgBox("Elemento selezionato: " & Elemento) Next Se, invece di conoscere gli elementi, fossimo stati interessati a recuperare gli indici selezionati, sarebbe stato sufficiente scorrere la collezione CheckedListBox1.CheckedIndices. Per quanto riguarda gli eventi, ricordiamo qui soltanto SelectedIndexChanged, comune a tutti e tre i controlli, che viene generato quando si seleziona un elemento nella lista, ovvero quando si modifica la proprietà SelectedIndex del controllo. Passiamo alla consueta realizzazione di un esempio per chiarire i concetti fin qui esposti. Vogliamo creare un'applicazione che consenta di selezionare alcuni articoli da un elenco per inserirli, ad esempio, in un ordine da stampare o inviare via posta elettronica. L'interfaccia è molto ricca di controlli, come si può vedere dall'immagine a lato: Nome controllo (tipo) Proprietà Valore Panel1 (Label) ListBox 1 (ListBox) AutoSize true Elementi disponibili: Button 1 (Button) Aggiungi>> Button 2 (Button) <<Rimuovi Label 2 (Label) CheckedListBox1 (CheckedListBox) Label 4 (Label) Label 5 (Label) ComboBox 1 (ComboBox) Label 6 (Label) AutoSize CheckOnClick AutoSize AutoSize DropDownStyle Items AutoSize true Elementi Selezionati: True True <vuoto> True Tipo pagamento DropDownList Contanti/Carta Credito True <vuoto> Button 2 (Button3/) Calcola La prima cosa da fare è riempire la ListBox1 all'avvio del programma, attraverso il seguente codice: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim I As Short For I = 1 To 10 ListBox1.Items.Add(I) Next ComboBox1.SelectedIndex = 0 In questa routine viene anche selezionato il primo elemento della ComboBox, attraverso l'istruzione ComboBox1.SelectedIndex = 0. Adesso vogliamo che quando il puntatore del mouse si sposta su un elemento della ListBox1, l'etichetta sottostante, Label3,

19 visualizzi il nome dell'elemento stesso. Per fare questo usiamo il metodo IndexFromPoint e l'evento MouseMove: Private Sub ListBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseMove Dim Indice As Short = ListBox1.IndexFromPoint(e.X, e.y) If Indice >= 0 Then Label3. = "Elemento corrente: " & ListBox1.Items(Indice) End If Il metodo IndexFromPoint restituisce l'indice dell'elemento che si trova nella posizione del mouse specificata; in questo caso usiamo due proprietà dell'oggetto e, X e Y, per conoscere le coordinate del cursore. Se l'indice è valido, cioè è un numero maggiore o uguale a 0, visualizziamo il valore dell'elemento corrispondente leggendo l'oggetto Items di posizione Indice. Per aggiungere o rimuovere elementi da una o dall'altra lista il codice da usare è il seguente: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If ListBox1.SelectedIndex >= 0 Then 'Se è stato selezionato un elemento, lo aggiunge alla CheckedListBox1. CheckedListBox1.Items.Add(ListBox1.SelectedItem, True) 'Rimuove l'elemento dalla ListBox1. ListBox1.Items.RemoveAt(ListBox1.SelectedIndex) End If Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If CheckedListBox1.SelectedIndex >= 0 Then 'Se è stato selezionato un elemento, lo rimette nella ListBox1. ListBox1.Items.Add(CheckedListBox1.SelectedItem) 'Rimuove l'elemento dalla CheckedListBox1. CheckedListBox1.Items.RemoveAt(CheckedListBox1.SelectedIndex) End If Come si vede, le due routine sono speculari. L'unica istruzione su cui spendere qualche parola è CheckedListBox1.Items.Add(ListBox1.SelectedItem, True). Il metodo Items.Add della CheckedListBox è polimorfico: se viene specificato il secondo parametro e lo si pone uguale a True, la casella di spunta corrispondente all'elemento appena inserito verrà automaticamente selezionata. Sempre a riguardo dalla CheckedListBox, notiamo che, impostando la proprietà CheckOnClick su True, la casella di spunta corrispondente all'elemento su cui si fa clic verrà automaticamente selezionata o deselezionata. L'ultima cosa che dobbiamo fare è scrivere il codice per fare in modo che, nella Label5, venga visualizzato il tipo di pagamento selezionato, utilizzando l'evento SelectedIndexChanged di cui abbiamo già parlato: Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged Label5. = "Tipo di pagamento selezionato: " & ComboBox1.SelectedItem Il codice da eseguire alla pressione del pulsante Calcola, in quanto non direttamente collegato con l'esempio, è lasciato come esercizio. L'esempio che abbiamo realizzato può essere scaricato facendo clic qui. In questa Lezione abbiamo introdotto tre dei controlli più utilizzati. La prossima Lezione sarà incentrata sul menu, uno dei componenti fondamentali di un'applicazione Windows; come vedremo, la gestione dei menu in VB.NET è radicalmente diversa rispetto a quella delle versioni precedenti. Menu e Tooltip in VB.NET La gestione dei menu in Visual Basic.NET è radicalmente diversa rispetto a quella delle versioni precedenti. L'amato-odiato Editor di menu ha fatto il suo tempo: ora per inserire un menu in un'applicazione VB.NET si deve utilizzare l'oggetto MainMenu, disponibile nella casella degli strumenti standard. Aggiungendo il controllo MainMenu in una form, comparirà un'area nella parte bassa della finestra in cui verrà inserita l'icona relativa. Si tratta di una novità di VB.NET: i controlli non visibili in fase di esecuzione, ad esempio il Timer, non vengono più visualizzati nella form, ma in una zona separata, così da evitare appesantimenti inutili. Dopo aver inserito il MainMenu, sotto la barra del titolo della form apparirà la barra dei menu, come si può vedere nell'immagine a lato. Ecco un'altro cambiamento rispetto alle versioni precedenti di Visual Basic: per definire i comandi dei

20 menu ora basta scriverli all'interno del menu stesso in fase di progettazione. Ad esempio, proviamo a fare clic sulla comando Type Here (scrivi qui) nella barra dei menu e a scrivere File: questo è sufficiente per creare un menu di nome File. Appariranno ora nuove voci nella barra dei menu, tutte contrassegnate da Type Here: al posto di ognuna di esse è possibile inserire un comando di menu. Come nelle versioni precedenti di Visual Basic, per inserire una barra di separazione nel menu basta creare una nuova voce e impostare la sua etichetta su - (segno meno); in alternativa, è anche possibile fare clic con il tasto destro del mouse all'interno del menu e selezionare Insert Separator (Inserisci separatore). Per spostare un comando da una posizione ad un'altra basta trascinare l'elemento del menu nella posizione desiderata. Facendo clic su un comando, nella finestra delle Proprietà compariranno le proprietà della voce di menu. Checked consente di visualizzare un segno di spunta a sinistra del nome del menu; RadioCheck, novità di VB.NET, deve essere impostato su True se si vuole che al posto del segno di spunta venga visualizzato un radio button (può essere usato, ad esempio, per indicare la scelta corrente in un insieme di opzioni). Shortcut consente di definire una scorciatoia da tastiera per il comando; è possibile decidere se visualizzare o meno tale combinazione di tasti agendo sulla proprietà ShowShortcut. Per scrivere il codice da eseguire quando si seleziona un comando dal menu, fare doppio clic sul comando stesso: si aprirà l'editor del codice all'interno della routine che gestisce l'evento Click sulla voce di menu. Altro evento importante è Select, che viene generato quando il puntatore del mouse di sposta su una voce del menu. L'altro tipo di menu disponibile in VB.NET è il menu contestuale: nelle applicazioni per Windows esso viene visualizzato quando si fa clic con il tasto destro del mouse su di un controllo. Nelle precedenti versioni di Visual Basic, per mostrare questo tipo di menu era necessario aggiungerlo alla barra dei menu standard, quindi richiamarlo con il metodo PopupMenu ad esempio all'interno dell'evento MouseUp, in modo da intercettare la pressione del tasto destro del mouse. In VB.NET il metodo PopupMenu non esiste più: per associare un menu contestuale ad un controllo è necessario creare un oggetto di tipo ContextMenu. Anch'esso, al pari del MainMenu, una volta inserito nella form viene visualizzato nella parte bassa della finestra di progettazione; anche la fase di creazione delle voci di menu e di impostazioni delle proprietà è la medesima. Se in una form sono presenti sia un MainMenu sia uno o più ContextMenu, facendo clic sull'uno o sull'altro il corrispondente layout dei menu verrà visualizzato sotto la barra del titolo, anche se, in fase di esecuzione, la barra dei menu sarà quella impostata nel MainMenu. Dopo aver creato un menu contestuale, è necessario associarlo ad uno o più controlli. Per fare questo si deve selezionare il controllo a cui si vuole collegare il menu e impostare la sua proprietà ContextMenu sul nome del menu contestuale interessato. Fatto questo, ogni volta che si farà clic con il tasto destro del mouse sul controllo verrà visualizzato il menu contestuale; non è più necessario scrivere nemmeno una riga di codice per ottenere questo effetto. L'evento Popup del ContextMenu viene generato prima della visualizzazione del menu contestuale. Può essere utilizzato, ad esempio, nel caso di un menu associato a più controlli, per adattare i comandi in base all'oggetto su cui è stato fatto il clic. Supponiamo di avere un ContextMenu associato ai controlli Button1 e Button2 con un unico comando, MenuItem1. Consideriamo il codice seguente: Private Sub ContextMenu1_Popup(ByVal sender As Object, ByVal e As System.EventArgs) Handles ContextMenu1.Popup If ContextMenu1.SourceControl Is Button1 Then MenuItem1. = "Nascondi pulsante" ElseIf ContextMenu1.SourceControl Is Button2 Then MenuItem1. = "Esci dal programma" End If Esso fa in modo che, premendo il pulsante destro del mouse su Button1, il comando del menu contestuale sia "Nascondi pulsante", mentre, facendo clic sul Button2, diventi " Esci dal programma". Per fare questo si è usata la proprietà SourceControl dell'oggetto ContextMenu, che specifica il controllo su cui è stato eseguito il clic destro. Anche gli elementi del ContextMenu dispongono dell'evento Click che viene generato quando l'utente seleziona un comando di menu con il tasto sinistro del mouse. Passiamo ora al controllo ToolTip, utilizzato per visualizzare un breve messaggio descrittivo quando si posiziona il mouse su un oggetto per alcuni istanti. Anch'esso è una novità di Visual Basic.NET: nelle precedenti versioni di VB, infatti, per assegnare un tooltip era sufficiente impostare la proprietà ToolTip. In VB.NET, per definire un tooltip è necessario inserire prima nella form un oggetto di tipo ToolTip; anch'esso, come il MainMenu e il ContextMenu, si posiziona nella parte bassa della finestra di progettazione. Inserito il ToolTip, tra le proprietà dei controlli della form ne apparirà una nuova, Tooltip on : il messaggio specificato in questa proprietà verrà utilizzato come tooltip. La decisione di aggiungere un controllo a parte per visualizzare i tooltip è dovuta al fatto che, così facendo, è possibile impostarne alcune proprietà, come il ritardo di visualizzazione, che prima non erano disponibili. In particolare, InitialDelay consente di specificare l'intervallo di

I controlli di Visual Basic.NET e la programmazione pratica

I controlli di Visual Basic.NET e la programmazione pratica 1.1. Visual Basic.NET: un nuovo linguaggio di programmazione Una breve introduzione a Visual Basic.NET, per iniziare a prendere confidenza con il nuovo ambiente di sviluppo. 1. 2. I cambiamenti nei tipi

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

Visual Basic FROM C TO DEDICATO AGLI UTENTI CON BASI DI C CHE SI AFFACCIANO AL MONDO DEL VISUAL BASIC. Contiene solo basi di linguaggio

Visual Basic FROM C TO DEDICATO AGLI UTENTI CON BASI DI C CHE SI AFFACCIANO AL MONDO DEL VISUAL BASIC. Contiene solo basi di linguaggio FROM C TO Visual Basic DEDICATO AGLI UTENTI CON BASI DI C CHE SI AFFACCIANO AL MONDO DEL VISUAL BASIC. Contiene solo basi di linguaggio FEDERICO GIUNTOLI Microsoft Visual Basic Questo capitolo ha lo scopo

Dettagli

Corso di Visual Basic (Parte 9)

Corso di Visual Basic (Parte 9) Corso di Visual Basic (Parte 9) di Maurizio Crespi La nona lezione del corso dedicato alla programmazione in Visual Basic si pone lo scopo di illustrare le funzioni definibili dall'utente e il concetto

Dettagli

Corso di Visual Basic (Parte I)

Corso di Visual Basic (Parte I) Corso di Visual Basic (Parte I) Come muovere i primi passi con Microsoft Visual Basic, lo strumento da molti considerato ideale per la realizzazione di applicazioni di piccola e media entità in ambiente

Dettagli

Corso di Visual Basic (Parte 8)

Corso di Visual Basic (Parte 8) Corso di Visual Basic (Parte 8) di MAURIZIO CRESPI Questo mese il corso di programmazione in Visual Basic focalizza la propria attenzione sulle procedure, talvolta dette subroutine L oggetto dell ottava

Dettagli

Foglio elettronico (StarOffice)

Foglio elettronico (StarOffice) Modulo Foglio elettronico (StarOffice) Modulo - Foglio elettronico, richiede che il candidato comprenda il concetto di foglio elettronico e dimostri di sapere usare il programma corrispondente. Deve comprendere

Dettagli

Talento LAB 2.1 - GUIDA E ASSISTENTE LA GUIDA IN LINEA. In questa lezione imparerete a:

Talento LAB 2.1 - GUIDA E ASSISTENTE LA GUIDA IN LINEA. In questa lezione imparerete a: Lab 2.1 Guida e assistente LAB 2.1 - GUIDA E ASSISTENTE In questa lezione imparerete a: Descrivere la Guida in linea e l'assistente Office, Descrivere gli strumenti della Guida in linea di Windows XP,Utilizzare

Dettagli

Lezione 4 Introduzione a Microsoft Excel Parte Prima

Lezione 4 Introduzione a Microsoft Excel Parte Prima Lezione 4 Introduzione a Microsoft Excel Parte Prima Cenni preliminari... 1 Elementi sullo schermo... 2 Creazione di una cartella di lavoro... 3 Utilizzo di celle e intervalli... 3 Gestione della cartella

Dettagli

Userform : Come crearle

Userform : Come crearle Ads by GoogleFree Excel Tutorial A Dedicated Website To Free Excel Tutorial Your-Tutorial.infoOffice Open XML Work With XML Data Saved in Office 2007 Documents. Try Free! www.altova.com/officeopenxml Finora

Dettagli

MODULO 3. Microsoft Excel. TEST ED ESERCIZI SU: http://www.informarsi.net/ecdl/excel/index.php

MODULO 3. Microsoft Excel. TEST ED ESERCIZI SU: http://www.informarsi.net/ecdl/excel/index.php MODULO 3 Microsoft Excel TEST ED ESERCIZI SU: http:///ecdl/excel/index.php Foglio Elettronico - SpreadSheet Un foglio elettronico (in inglese spreadsheet) è un programma applicativo usato per memorizzare

Dettagli

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante Tiipii dii Datii iin Viisuall Basiic Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante l'esecuzione di un'applicazione. Alle variabili è associato un nome, utilizzato

Dettagli

Introduzione a Word. Prima di iniziare. Competenze che saranno acquisite. Requisiti. Tempo stimato per il completamento:

Introduzione a Word. Prima di iniziare. Competenze che saranno acquisite. Requisiti. Tempo stimato per il completamento: Introduzione a Word Word è una potente applicazione di elaborazione testi e layout, ma per utilizzarla nel modo più efficace è necessario comprenderne gli elementi di base. Questa esercitazione illustra

Dettagli

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010 Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012 Introduzione a Visual Studio 2005/2008/2010 1 Outline Solution e Project Visual Studio e linguaggio C Visual Studio schermata principale

Dettagli

POLITECNICO DI BARI Corso di Laurea in Ingegneria MECCANICA Corso di FONDAMENTI DI INFORMATICA

POLITECNICO DI BARI Corso di Laurea in Ingegneria MECCANICA Corso di FONDAMENTI DI INFORMATICA POLITECNICO DI BARI Corso di Laurea in Ingegneria MECCANICA Corso di FONDAMENTI DI INFORMATICA ACCESSO ALL AMBIENTE DI PROGRAMMAZIONE Microsoft Visual C++ è sufficiente cliccare sul pulsante di Windows,

Dettagli

MANUALE OPERATIVO EXCEL 2003

MANUALE OPERATIVO EXCEL 2003 1. Novità di Excel 2003 MANUALE OPERATIVO EXCEL 2003 CAPITOLO 1 Microsoft Office Excel 2003 ha introdotto alcune novità ed ha apportato miglioramenti ad alcune funzioni già esistenti nelle precedenti versioni

Dettagli

Modulo 3 - Elaborazione Testi 3.1 Utilizzo applicazione

Modulo 3 - Elaborazione Testi 3.1 Utilizzo applicazione Università degli Studi dell Aquila Corso ECDL programma START Modulo 3 - Elaborazione Testi 3.1 Utilizzo applicazione Elaborazione testi Per scrivere una lettera, un libro, una tesi, o un semplice cartello

Dettagli

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Scuola Specializzazione Istruzione Superiore Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Michele Batocchi ITC Vittorio Emanuele II Perugia A.S. 2007/2008 Introduzione

Dettagli

Programmazione in Excel con il linguaggio Visual Basic

Programmazione in Excel con il linguaggio Visual Basic Programmazione in Excel con il linguaggio Visual Basic L'ambiente di programmazione Il foglio elettronico Excel, così come gli altri prodotti Office di Microsoft, possiede un vero e proprio ambiente di

Dettagli

Introduzione a Visual Studio 2005

Introduzione a Visual Studio 2005 Fondamenti di Informatica e Laboratorio T-AB Ingengeria Elettronica e Telecomunicazioni a.a. 2008/2009 Introduzione a Visual Studio 2005 Outline Solutions e Projects Visual Studio e il linguaggio C Visual

Dettagli

Capitolo primo. Introduzione

Capitolo primo. Introduzione Capitolo primo Introduzione Questo corso si propone di insegnare a creare applicazioni database con Access utilizzando il linguaggio VBA-Visual Basic for Application: vale a dire quel caratteristico dialetto

Dettagli

Esercitazione. Fig. B.1 L ambiente di lavoro Exel

Esercitazione. Fig. B.1 L ambiente di lavoro Exel Esercitazione Exel: il foglio di lavoro B.1 Introduzione Exel è un applicazione che serve per la gestione dei fogli di calcolo. Questo programma fa parte del pacchetto OFFICE. Le applicazioni di Office

Dettagli

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Scopo di questo approfondimento Lo scopo di questo approfondimento è rispondere alla domanda: e se nella vita mi troverò a dover utilizzare un linguaggio

Dettagli

www.informarsi.net MODULO 6 ECDL - EIPASS STRUMENTI DI PRESENTAZIONE - PRESENTATIONS Microsoft PowerPoint http://www.informarsi.net/ecdl/powerpoint/

www.informarsi.net MODULO 6 ECDL - EIPASS STRUMENTI DI PRESENTAZIONE - PRESENTATIONS Microsoft PowerPoint http://www.informarsi.net/ecdl/powerpoint/ MODULO 6 ECDL - EIPASS STRUMENTI DI PRESENTAZIONE - PRESENTATIONS Microsoft PowerPoint http:///ecdl/powerpoint/ INTERFACCIA UTENTE TIPICA DI UN SOFTWARE DI PRESENTAZIONE APERTURA E SALVATAGGIO DI UNA PRESENTAZIONE

Dettagli

A. Carullo Introduzione a Visual Basic. Introduzione a

A. Carullo Introduzione a Visual Basic. Introduzione a Introduzione a Visual Basic 1 Indice degli argomenti trattati Cos è Visual Basic? L ambiente di sviluppo Visual Basic I passi per la creazione di un progetto VB Operazioni più comuni in un progetto VB

Dettagli

Modulo 4.2 Fogli di calcolo elettronico

Modulo 4.2 Fogli di calcolo elettronico Modulo 4.2 Fogli di calcolo elettronico 1 Finestra principale di Excel 2 Finestra principale di Excel Questi pulsanti servono per ridurre ad icona, ripristinare e chiudere la finestra dell applicazione.

Dettagli

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:

Dettagli

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore Cicli in Visual Basic for Application Le strutture del programma che ripetono l'esecuzione di una o più istruzioni sono chiamate Cicli. Alcune strutture per i cicli sono costruite in modo da venire eseguite

Dettagli

4.1 UTILIZZO DELL APPLICAZIONE

4.1 UTILIZZO DELL APPLICAZIONE 4.1 UTILIZZO DELL APPLICAZIONE Il foglio elettronico (definito anche spreadsheet) è uno strumento formidabile. Possiamo considerarlo come una specie di enorme tabellone a griglia il cui utilizzo si estende

Dettagli

Foglio Elettronico. Creare un nuovo foglio elettronico Menu File Nuovo 1 clic su Cartella di lavoro vuota nel riquadro attività

Foglio Elettronico. Creare un nuovo foglio elettronico Menu File Nuovo 1 clic su Cartella di lavoro vuota nel riquadro attività Foglio Elettronico Avviare il Programma Menu Start Tutti i programmi Microsoft Excel Pulsanti 2 clic sull icona presente sul Desktop Chiudere il Programma Menu File Esci Pulsanti Tasto dx 1 clic sul pulsante

Dettagli

Università degli studi di Brescia Facoltà di Medicina e Chirurgia Corso di Laurea in Infermieristica. Corso propedeutico di Matematica e Informatica

Università degli studi di Brescia Facoltà di Medicina e Chirurgia Corso di Laurea in Infermieristica. Corso propedeutico di Matematica e Informatica Università degli studi di Brescia Facoltà di Medicina e Chirurgia Corso di Laurea in Infermieristica a.a. 2008/2009 Docente Ing. Andrea Ghedi IL DESKTOP Lezione 2 Il Desktop Tipi di icone Cartelle. Una

Dettagli

MODULO 5 Basi di dati (database)

MODULO 5 Basi di dati (database) MODULO 5 Basi di dati (database) I contenuti del modulo: questo modulo riguarda la conoscenza da parte del candidato dei concetti fondamentali sulle basi di dati e la sua capacità di utilizzarli. Il modulo

Dettagli

B C. Panoramica di Access 2010. Elementi dell interfaccia

B C. Panoramica di Access 2010. Elementi dell interfaccia Panoramica di Access 2010 A B C D E Elementi dell interfaccia A Scheda File (visualizzazione Backstage) Consente l accesso alla nuova visualizzazione backstage di Access 2010, che contiene un menu di comandi

Dettagli

Il blog di Emanuele Mattei in ambito Database

Il blog di Emanuele Mattei in ambito Database Il blog di Emanuele Mattei in ambito Database Programmazione database, ado.net e database mobile Come visualizzare ed inserire le immagini in un database Microsoft Access tramite Ado.Net Riporto l'articolo

Dettagli

Piccola guida a VBA per Word

Piccola guida a VBA per Word Piccola guida a VBA per Word La differenza tra VBA (Visual Basic for Applications) e VB6 (Visual Basic versione 6) Il modello di un documento Word Il progetto di un documento Word Come creare un nuovo

Dettagli

OpenOffice.org Da Wikipedia, l'enciclopedia libera.

OpenOffice.org Da Wikipedia, l'enciclopedia libera. OpenOffice.org Da Wikipedia, l'enciclopedia libera. OpenOffice.org è una suite di proprietà Sun Microsystems con copyright e licenza LGPL, che può essere classificato come software di produttività personale.

Dettagli

Guida di Keyboard Builder. 2009 Sielco Sistemi Srl

Guida di Keyboard Builder. 2009 Sielco Sistemi Srl Guida di Keyboard Builder Guida di Keyboard Builder Keyboard Builder è uno strumento che permette di costruire tastiere da visualizzare sullo schermo, utili per la realizzazione di applicazioni che operano

Dettagli

Foglio elettronico. Foglio elettronico EXCEL. Utilizzo. Contenuto della cella. Vantaggi EXCEL. Prof. Francesco Procida procida.francesco@virgilio.

Foglio elettronico. Foglio elettronico EXCEL. Utilizzo. Contenuto della cella. Vantaggi EXCEL. Prof. Francesco Procida procida.francesco@virgilio. Foglio elettronico Foglio elettronico EXCEL Prof. Francesco Procida procida.francesco@virgilio.it Il foglio elettronico è un programma interattivo, che mette a disposizione dell utente una matrice di righe

Dettagli

Il foglio elettronico

Il foglio elettronico Il foglio elettronico Foglio di calcolo, Spreadsheet in inglese, Permette di elaborare DATI NUMERICI. E una TABELLA che contiene numeri che possono essere elaborati con FUNZIONI matematiche e statistiche.

Dettagli

L AMBIENTE DI PROGRAMMAZIONE TURBO PASCAL... 2 LE COMPONENTI DELL AMBIENTE DI SVILUPPO... 2 La barra dei menu... 2 Il desktop o finestra attiva...

L AMBIENTE DI PROGRAMMAZIONE TURBO PASCAL... 2 LE COMPONENTI DELL AMBIENTE DI SVILUPPO... 2 La barra dei menu... 2 Il desktop o finestra attiva... L AMBIENTE DI PROGRAMMAZIONE TURBO PASCAL... 2 LE COMPONENTI DELL AMBIENTE DI SVILUPPO... 2 La barra dei menu... 2 Il desktop o finestra attiva... 4 La linea di stato... 4 Uso delle caselle di dialogo...

Dettagli

MICROSOFT EXCEL INTRODUZIONE PRIMI PASSI

MICROSOFT EXCEL INTRODUZIONE PRIMI PASSI MICROSOFT EXCEL INTRODUZIONE Si tratta di un software appartenente alla categoria dei fogli di calcolo: con essi si intendono veri e propri fogli elettronici, ciascuno dei quali è diviso in righe e colonne,

Dettagli

6. Applicazione: gestione del centro sportivo Olympic

6. Applicazione: gestione del centro sportivo Olympic LIBRERIA WEB 6. Applicazione: gestione del centro sportivo Olympic PROGETTO Il centro sportivo Olympic organizza corsi di tipo diverso: nuoto, danza, karate, ecc. Ogni corso ha un unico istruttore prevalente,

Dettagli

GUIDA RAPIDA ALL USO DI EXCEL

GUIDA RAPIDA ALL USO DI EXCEL GUIDA RAPIDA ALL USO DI EXCEL I fogli elettronici vengono utilizzati in moltissimi settori, per applicazioni di tipo economico, finanziario, scientifico, ingegneristico e sono chiamati in vari modi : fogli

Dettagli

Strumenti per lo sviluppo del software

Strumenti per lo sviluppo del software Lo sviluppo del software Strumenti per lo sviluppo del software Lo sviluppo del software è l attività centrale del progetto e ha lo scopo di produrre il codice sorgente che, una volta compilato e messo

Dettagli

Introduzione a Microsoft Word 2007

Introduzione a Microsoft Word 2007 Introduzione a Microsoft Word 2007 Autore: Alessandra Salvaggio Tratto dal libro: Lavorare con Word 2007 Non ostante che Microsoft Office 2007 sia uscito da un po di tempo, molte persone ancora non sono

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base LEZIONE N 3 Cortina d Ampezzo, 4 dicembre 2008 ELABORAZIONE TESTI Grazie all impiego di programmi per l elaborazione dei testi, oggi è possibile creare documenti dall aspetto

Dettagli

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Approfondimento SOFTWARE PER L ARCHIVIAZIONE

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Approfondimento SOFTWARE PER L ARCHIVIAZIONE APPROFONDIMENTO ICT Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto Approfondimento SOFTWARE PER L ARCHIVIAZIONE ORGANISMO BILATERALE PER LA FORMAZIONE IN CAMPANIA INDICE SOFTWARE PER

Dettagli

Laboratorio di Informatica. Facoltà di Economia Università di Foggia. Prof. Crescenzio Gallo

Laboratorio di Informatica. Facoltà di Economia Università di Foggia. Prof. Crescenzio Gallo . Laboratorio di Informatica Facoltà di Economia Università di Foggia Prof. Crescenzio Gallo Word è un programma di elaborazione testi che consente di creare, modificare e formattare documenti in modo

Dettagli

IL DESKTOP Lezione 2

IL DESKTOP Lezione 2 Università degli studi di Brescia Facoltà di Medicina e Chirurgia Corso di Laurea in Infermieristica a.a. 2006/2007 Docente Ing. Andrea Ghedi IL DESKTOP Lezione 2 1 Il Desktop Tipi di icone Cartelle. Una

Dettagli

CORSO PRATICO WinWord

CORSO PRATICO WinWord CORSO PRATICO WinWord AUTORE: Renato Avato 1. Strumenti Principali di Word Il piano di lavoro di Word comprende: La Barra del Titolo, dove sono posizionate le icone di ridimensionamento: riduci finestra

Dettagli

Microsoft PowerPoint

Microsoft PowerPoint Microsoft introduzione a E' un programma che si utilizza per creare presentazioni grafiche con estrema semplicità e rapidità. Si possono realizzare presentazioni aziendali diapositive per riunioni di marketing

Dettagli

Operazioni di base per l inserimento del testo

Operazioni di base per l inserimento del testo Office automation dispensa n.2 su Word Pagina 1 di 13 Operazioni di base per l inserimento del testo Usando un elaboratore di testi è consigliabile seguire alcune regole di scrittura che permettono di

Dettagli

bla bla Documenti Manuale utente

bla bla Documenti Manuale utente bla bla Documenti Manuale utente Documenti Documenti: Manuale utente Data di pubblicazione mercoledì, 25. febbraio 2015 Version 7.6.2 Diritto d'autore 2006-2013 OPEN-XCHANGE Inc., Questo documento è proprietà

Dettagli

3.3 Formattazione. Formattare un testo. Copyright 2008 Apogeo. Formattazione del carattere

3.3 Formattazione. Formattare un testo. Copyright 2008 Apogeo. Formattazione del carattere 3.3 Formattazione Formattare un testo Modificare la formattazione del carattere Cambiare il font di un testo selezionato Modificare la dimensione e il tipo di carattere Formattazione del carattere In Word,

Dettagli

UTILIZZO DI WORD PROCESSOR

UTILIZZO DI WORD PROCESSOR UTILIZZO DI WORD PROCESSOR (ELABORAZIONE TESTI) Laboratorio Informatico di base A.A. 2013/2014 Dipartimento di Scienze Aziendali e Giuridiche Università della Calabria Dott. Pierluigi Muoio (pierluigi.muoio@unical.it)

Dettagli

Foglio elettronico. OpenOffice.org Calc 1.1.3

Foglio elettronico. OpenOffice.org Calc 1.1.3 Foglio elettronico OpenOffice.org Calc 1.1.3 PRIMI PASSI CON IL FOGLIO ELETTRONICO Aprire il programma Menu Avvio applicazioni Office OpenOffice.org Calc. Chiudere il programma Menu File Esci. Pulsanti

Dettagli

MODULO 3 Foglio elettronico

MODULO 3 Foglio elettronico MODULO 3 Foglio elettronico I contenuti del modulo: Questo modulo verifica la comprensione da parte del corsista dei concetti fondamentali del foglio elettronico e la sua capacità di applicare praticamente

Dettagli

LUdeS Informatica 2 EXCEL. Prima parte AA 2013/2014

LUdeS Informatica 2 EXCEL. Prima parte AA 2013/2014 LUdeS Informatica 2 EXCEL Prima parte AA 2013/2014 COS E EXCEL? Microsoft Excel è uno dei fogli elettronici più potenti e completi operanti nell'ambiente Windows. Un foglio elettronico è un programma che

Dettagli

WGDESIGNER Manuale Utente

WGDESIGNER Manuale Utente WGDESIGNER Manuale Utente Pagina 1 SOMMARIO 1 Introduzione... 3 1.1 Requisiti hardware e software... 3 2 Configurazione... 3 3 Installazione... 4 3.1 Da Webgate Setup Manager... 4 3.2 Da pacchetto autoestraente...

Dettagli

Organizzazione dei tasti

Organizzazione dei tasti Utilizzare la tastiera La tastiera è lo strumento principale per l'immissione di informazioni nel computer, che si tratti di scrivere una lettera o di calcolare dati numerici. Non tutti sanno però che

Dettagli

Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 13

Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 13 Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 13 Anno accademico 2006-07 Titolare corso: Prof. Costanza Torricelli Docente: Dott.ssa Marianna Brunetti I

Dettagli

Chiudere il Programma Menu File Esci Pulsanti 1 clic sul pulsante Tasto dx 1 clic sulla barra del titolo Chiudi Tastiera Alt+F4

Chiudere il Programma Menu File Esci Pulsanti 1 clic sul pulsante Tasto dx 1 clic sulla barra del titolo Chiudi Tastiera Alt+F4 Foglio Elettronico PRIMI PASSI CON IL FOGLIO ELETTRONICO Avviare il Programma Menu Start Tutti i programmi Microsoft Excel Pulsanti 2 clic sull icona presente sul Desktop Chiudere il Programma Menu File

Dettagli

Lezione 1: Introduzione Struttura e aspetto di PowerPoint Sviluppare una presentazione. Patente Europea di Informatica ECDL Modulo 6

Lezione 1: Introduzione Struttura e aspetto di PowerPoint Sviluppare una presentazione. Patente Europea di Informatica ECDL Modulo 6 Patente Europea di Informatica ECDL Modulo 6 Lezione 1: Introduzione Struttura e aspetto di PowerPoint Sviluppare una presentazione Anno 2009/2010 Syllabus 5.0 Microsoft PowerPoint è un software progettato

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Visual Basic Visual Basic Linguaggio di programmazione

Dettagli

Lezione 6 Introduzione a Microsoft Excel Parte Terza

Lezione 6 Introduzione a Microsoft Excel Parte Terza Lezione 6 Introduzione a Microsoft Excel Parte Terza I grafici in Excel... 1 Creazione di grafici con i dati di un foglio di lavoro... 1 Ricerca del tipo di grafico più adatto... 3 Modifica del grafico...

Dettagli

MICROSOFT WORD INTRODUZIONE

MICROSOFT WORD INTRODUZIONE 1 MICROSOFT WORD INTRODUZIONE Word è il programma più diffuso per elaborazione di testi, il cui scopo fondamentale è assistere l utente nelle operazioni di digitazione, revisione e formattazione di testi.

Dettagli

Visual Basic.NET La Gestione degli Errori di Federico BARBATI

Visual Basic.NET La Gestione degli Errori di Federico BARBATI Generalità Visual Basic.NET La Gestione degli Errori di Federico BARBATI La gestione degli errori, è una parte fondamentale di un codice ben progettato. Fino ad oggi, gli errori nelle applicazioni scritte

Dettagli

il foglio elettronico

il foglio elettronico 1 il foglio elettronico ecdl - modulo 4 toniorollo 2013 il modulo richiede 1/2 comprendere il concetto di foglio elettronico e dimostri di sapere usare il programma di foglio elettronico per produrre dei

Dettagli

1 Programmazione orientata agli oggetti

1 Programmazione orientata agli oggetti Visual Basic Lo studio di questa unità può essere affrontato con due modalità differenti. Il lettore che ha già esperienza di programmazione in un linguaggio ad alto livello (QBasic, Pascal, C) può tralasciare

Dettagli

Applicazioni grafiche

Applicazioni grafiche Applicazioni grafiche I grafici all interno di un form sono realizzati attraverso gli oggetti del namespace System.Drawing. Graphics. Il namespace è incluso automaticamente nel progetto, quindi non è necessaria

Dettagli

Uso di trigger di script in FileMaker Pro

Uso di trigger di script in FileMaker Pro Uso di trigger di script in FileMaker Pro Sommario Info su questo bollettino tecnico... 4 Che cos'è un trigger di script?... 4 Quali trigger di script sono supportati da FileMaker Pro?... 5 Panoramica

Dettagli

IL LINGUAGGIO Visual Basic

IL LINGUAGGIO Visual Basic Caratteristiche del linguaggio VB Linguaggio basato sugli eventi IL LINGUAGGI Visual Basic I programmi non sono procedurali, poiche non seguono una sequenza operativa. gni programma si basa infatti su

Dettagli

Foglio di calcolo. Numero Valuta Testo Data e Ora Percentuale

Foglio di calcolo. Numero Valuta Testo Data e Ora Percentuale Foglio di calcolo Foglio di calcolo Foglio organizzato in forma matriciale: migliaia di righe e centinaia di colonne In corrispondenza di ciascuna intersezione tra riga e colonna vi è una CELLA Una cella

Dettagli

www.wlascuola.4000.it

www.wlascuola.4000.it 1 Cenni di programmazione Risolvere un problema significa trovare un procedimento che consenta di produrre i risultati, a partire dai dati iniziali, attraverso un processo di elaborazione. La metodologia

Dettagli

Lezione 5 Introduzione a Microsoft Excel Parte Seconda

Lezione 5 Introduzione a Microsoft Excel Parte Seconda Lezione 5 Introduzione a Microsoft Excel Parte Seconda Utilizzo delle funzioni... 1 Utilizzo di intervalli nelle formule... 2 Riferimenti di cella e di intervallo... 5 Indirizzi assoluti, relativi e misti...

Dettagli

bla bla Documents Manuale utente

bla bla Documents Manuale utente bla bla Documents Manuale utente Documents Documents: Manuale utente Data di pubblicazione lunedì, 14. settembre 2015 Version 7.8.0 Diritto d'autore 2006-2013 OPEN-XCHANGE Inc., Questo documento è proprietà

Dettagli

IMPORTAZIONE DI GRAFICI E TABELLE DA EXCEL A WORD

IMPORTAZIONE DI GRAFICI E TABELLE DA EXCEL A WORD WORD 2000 IMPORTAZIONE DI TABELLE E GRAFICI IMPORTAZIONE DI GRAFICI E TABELLE DA EXCEL A WORD Introduzione Il sistema operativo Windows supporta una particolare tecnologia, detta OLE (Object Linking and

Dettagli

Introduzione a PowerPoint

Introduzione a PowerPoint Office automation - Dispensa su PowerPoint Pagina 1 di 11 Introduzione a PowerPoint Premessa Uno strumento di presentazione abbastanza noto è la lavagna luminosa. Questo strumento, piuttosto semplice,

Dettagli

Talento LAB 3.1 - PREFERITI & CRONOLOGIA L'ELENCO PREFERITI. In questa lezione imparerete a:

Talento LAB 3.1 - PREFERITI & CRONOLOGIA L'ELENCO PREFERITI. In questa lezione imparerete a: Lab 3.1 Preferiti & Cronologia LAB 3.1 - PREFERITI & CRONOLOGIA In questa lezione imparerete a: Aprire l'elenco Preferiti, Espandere e comprimere le cartelle dell'elenco Preferiti, Aggiungere una pagina

Dettagli

Introduzione a Visual Basic Premessa

Introduzione a Visual Basic Premessa Introduzione a Visual Basic Premessa Questo testo è stato tratto dal sito, sintetizzato e rielaborato in formato PDF esclusivamente per uso didattico. Il corso è pensato per quanti non hanno alcuna conoscenza

Dettagli

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0)

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Nota Bene: Si raccomanda di leggere queste dispense di fronte al computer, provando passo dopo passo le funzionalità descritte. Per

Dettagli

Prof. Antonio Sestini

Prof. Antonio Sestini Prof. Antonio Sestini 1 - Formattazione Disposizione del testo intorno ad una tabella Selezionare la tabella Dal menù contestuale scegliere il comando «proprietà» Selezionare lo stile di disposizione del

Dettagli

7. Microsoft Access. 1) Introduzione a Microsoft Access

7. Microsoft Access. 1) Introduzione a Microsoft Access 1) Introduzione a Microsoft Access Microsoft Access è un programma della suite Microsoft Office utilizzato per la creazione e gestione di database relazionali. Cosa è un database? Un database, o una base

Dettagli

WINDOWS - Comandi rapidi da tastiera più utilizzati.

WINDOWS - Comandi rapidi da tastiera più utilizzati. WINDOWS - Comandi rapidi da tastiera più utilizzati. La prima colonna indica il tasto da premere singolarmente e poi rilasciare. La seconda e terza colonna rappresenta la combinazione dei i tasti da premere

Dettagli

APPUNTI WORD PER WINDOWS

APPUNTI WORD PER WINDOWS COBASLID Accedemia Ligustica di Belle Arti Laboratorio d informatica a.a 2005/06 prof Spaccini Gianfranco APPUNTI WORD PER WINDOWS 1. COSA È 2. NOZIONI DI BASE 2.1 COME AVVIARE WORD 2.2 LA FINESTRA DI

Dettagli

Guida all uso del foglio elettronico Excel Lezioni ed esercizi

Guida all uso del foglio elettronico Excel Lezioni ed esercizi Lezioni di EXCEL Guida all uso del foglio elettronico Excel Lezioni ed esercizi 1 Il foglio elettronico Excel Excel è un foglio elettronico che consente di effettuare svariate operazioni nel campo matematico,

Dettagli

Guida per l'utente alla pianificazione OrgPublisher per tutti i browser

Guida per l'utente alla pianificazione OrgPublisher per tutti i browser Guida per l'utente alla pianificazione OrgPublisher per tutti i browser Sommario Guida per l'utente alla pianificazione OrgPublisher per tutti i browser Sommario Accesso alla pianificazione per tutti i

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Informatica Corso di Laurea in Infermieristica A.A. 2007/08 Prof. Ludovico Bosio

Informatica Corso di Laurea in Infermieristica A.A. 2007/08 Prof. Ludovico Bosio Informatica Corso di Laurea in Infermieristica A.A. 2007/08 Prof. Ludovico Bosio Lezione 2: Windows e applicazioni software Contenuto del documento Operazioni su file e cartelle Principali applicazioni

Dettagli

Utilizzare il debugger di Visual Studio

Utilizzare il debugger di Visual Studio Appendice F Utilizzare il debugger di Visual Studio Obiettivi Essere in grado di impostare i breakpoint e di eseguire un programma nel debugger. Essere in grado di utilizzare il comando Continue per continuare

Dettagli

Tipi di Dato Ricorsivi

Tipi di Dato Ricorsivi Tipi di Dato Ricorsivi Luca Abeni September 2, 2015 1 Tipi di Dato Vari linguaggi di programmazione permettono all utente di definire nuovi tipi di dato definendo per ogni nuovo tipo l insieme dei suoi

Dettagli

Creare e formattare i documenti

Creare e formattare i documenti Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Elaborazione di testi Creare e formattare i documenti 1 IL WORD PROCESSOR I programmi per l elaborazione di testi ( detti anche di videoscrittura

Dettagli

MICROSOFT ACCESS. Sommario del Corso

MICROSOFT ACCESS. Sommario del Corso MICROSOFT ACCESS Revisione dispense n 5 Sommario del Corso MICROSOFT ACCESS... 1 INTRODUZIONE... 2 Il Database di Microsoft Access... 2 GLI OGGETTI... 3 Gli oggetti del database... 3 Visualizzazioni degli

Dettagli

Concetti di base della Tecnologia dell'informazione e della Comunicazione. Studio Elfra sas Via F.lli Ruffini 9 17031 Albenga SV 0182596058

Concetti di base della Tecnologia dell'informazione e della Comunicazione. Studio Elfra sas Via F.lli Ruffini 9 17031 Albenga SV 0182596058 by Studio Elfra sas Concetti di base della Tecnologia dell'informazione e della Comunicazione Aggiornato a Aprile 2009 Informatica di base 1 Elaborazione testi I word processor, o programmi per l'elaborazione

Dettagli

Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e

Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e grafici, tutto nello stesso file di documento. Durante il lavoro testo e illustrazioni appaiono sullo schermo

Dettagli

2.2.2.1 Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento.

2.2.2.1 Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento. Uso del computer e gestione dei file 57 2.2.2.1 Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento. All interno

Dettagli

Microsoft Access - dispensa didattica ECDL Modulo 5 - a cura di Antonino Terranova PAG 1

Microsoft Access - dispensa didattica ECDL Modulo 5 - a cura di Antonino Terranova PAG 1 Microsoft Access - Determinare l input appropriato per il database...2 Determinare l output appropriato per il database...2 Creare un database usando l autocomposizione...2 Creare la struttura di una tabella...4

Dettagli

2. Salvare il file (cartella di lavoro) con il nome Tabelline 3. Creare le seguenti due tabelle (una tabellina non compilata e una compilata)

2. Salvare il file (cartella di lavoro) con il nome Tabelline 3. Creare le seguenti due tabelle (una tabellina non compilata e una compilata) Tabellina Pitagorica Per costruire il foglio elettronico per la simulazione delle tabelline occorre: 1. Aprire Microsoft Excel 2. Salvare il file (cartella di lavoro) con il nome Tabelline 3. Creare le

Dettagli

Lezione del 31/05/2010 - Foglio elettronico e didattica

Lezione del 31/05/2010 - Foglio elettronico e didattica Lezione del 31/05/2010 - Foglio elettronico e didattica Attività della giornata lezione sul foglio elettronico generalità indirizzi delle celle, indirizzi relativi indirizzi di aree di celle, nomi delle

Dettagli