Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Dichiarare ed utilizzare gli oggetti


Spesso negli articoli precedenti si è parlato di oggetti utilizzandone le proprietà, i metodi e gli eventi senza però approfondire il concetto che sta alla base del loro utilizzo. Com'è possibile infatti utilizzare liberamente un oggetto senza prima averne definito l'identità, l'essenza? Non si può, infatti.
Ecco perchè adesso vediamo in breve i passi fondamentali da compiere per poter fare uso (ed abuso) di qualsiasi oggetto.
In realtà non si dovrebbe parlare di oggetti in senso stretto. Quello che infatti si manipola è il riferimento ad un oggetto. Prendiamo il caso della serie di articoli di Visual Basic per Word. Per poter utilizzare gli oggetti che Word mette a disposizione (ad esempio il motore grammaticale per la determinazione degli errori ortografici e grammaticali), si crea un riferimento ad essi. Proprio per questo prima di procedere allo sviluppo del codice andiamo nella finestra Riferimenti e selezioniamo la voce corrispondente (nel caso di Word si seleziona infatti col segno di spunta la casella 'Microsoft Word X.0 Object Library' dove la libreria di oggetti non è altro che la serie, la collezione di oggetti disponibili legati a Word e che include le definizioni di tutti gli oggetti forniti dal componente (Word), comprese le definizioni dei metodi, delle proprietà e degli eventi disponibili.
La figura sotto mostra proprio come avviene la selezione di un riferimento ad un oggetto esterno a Visual Basic:


Dove si mettono i riferimenti agli oggetti? Non esiste nella natura del codice niente che corrisponda a tale definizione.
Ecco perchè risulta necessario dichiarare una variabile oggetto e assegnarle un riferimento all'oggetto che si desidera impiegare nel progetto.
Le modalità di assegnazione di un riferimento ad una variabile oggetto dipende dal tipo di riferimento col quale ci si trova a lavorare.
Dobbiamo necessariamente distinguere due casi. Nel caso in cui sia disponibile una libreria completa degli oggetti (come nel caso precedentemente analizzato di Word), dobbiamo seguire una procedura solo apparentemente lunga e complicata:
  • Primo passo: come già visto prima dobbiamo entrare nella finestra Riferimenti e selezionare il riferimento all'oggetto che si desidera importare nell'applicazione.
    L'estensione dei file di libreria può essere .tlb o .olb. Le librerie possono inoltre essere disponibili in file eseguibili (.exe) o essere a collegamento dinamico (.dll). È pertanto possibile eseguire la ricerca specificando anche queste estensioni, premendo il pulsante Sfoglia nella finestra Riferimenti.
    Provando a sfogliare la directury C:\WINDOWS\SYSTEM dove sono contenuti i files delle librerie possiamo infatti notare la presenza di vari files .tlb, .olb e .dll.
  • Secondo passo: una volta importata la libreria alla quale si desidera fare riferimento nel corso dell'applicazione, sarà sempre possibile visualizzarne il contenuto ed ottenere utili informazioni sulla sua struttura e sul suo utilizzo premendo il pulsante Visualizzatore Oggetti dalla toolbar di Visual Basic.
    Selezionata la libreria desiderata dalla combobox denominata 'Progetto/libreria', si potrà averne a disposizione la struttura, come mostrato qui sotto:


    Per una spiegazione nel dettaglio delle funzionalità del Visualizzatore Oggetti rimandiamo ad un articolo futuro.
  • Terzo passo: arriviamo al codice ossia a quello che c'interessa più da vicino. Dobbiamo dichiarare una variabile oggetto che per il momento rimarrà vuota.
    Se ad esempio abbiamo intenzione di utilizzare un riferimento a Word, dovremo dichiarare una variabile oggetto della classe Word.Application:

    Dim Sessione As Word.Application

    dove tale classe rappresenta una nuova sessione di lavoro di Word.
  • Quarto passo: dovremo ora ssegnare alla variabile un riferimento all'oggetto specificando la parola chiave New, CreateObject o GetObject in un'istruzione Set. Che differenza c'è tra New, CreateObject e GetObject? Per meglio comprendere questo punto è necessario riferirsi alla tabella sottostante.

    New Se la variabile oggetto è stata dichiarata specificando la parola chiave New, la prima volta che si utilizza la variabile, a essa viene automaticamente assegnato un nuovo riferimento all'oggetto. Questo è possibile solamente se l'oggetto mette a disposizione una libreria propria.
    CreateObject Indipendentemente dal fatto che l'oggetto fornisca o meno una libreria propria, per creare un nuovo oggetto e assegnare a una variabile oggetto un riferimento all'oggetto è possibile utilizzare la funzione CreateObject in un'istruzione Set e specificare l'identificatore programmatico dell'oggetto come argomento della funzione. L'oggetto a cui si desidera accedere deve essere creabile esternamente.
    GetObject La funzione GetObject viene in genere utilizzata per l'assegnazione di riferimenti a oggetti esistenti, ma è possibile utilizzarla anche per l'assegnazione a nuovi oggetti.

    Facciamo un po' di esempi. Ecco come possiamo utilizzare la parola chiave New:

    Dim objWord As Word.Application
    Set objWord = New Word.Application
    objWord.Visible = True

    In questo blocco di codice abbiamo prima indicato una variabile oggetto e successivamente le abbiamo collegato il riferimento ad una nuova sessione di lavoro di Word. Questo significa che possiamo d'ora in avanti avere il pieno controllo su una nuova applicazione Word: possiamo aprirla, chiuderla, salvarla, renderla invisibile o visibile com'è stato fatto nella terza linea di codice.
    La funzione CreateObject ha invece una struttura differente, del tipo:

    Set VariabileOggetto = CreateObject("IDprog", ["NomeServer"])

    dove IDprog rappresenta genere il nome completo della classe per l'oggetto da creare, ad esempio, Word.Application. NomeServer è invece un argomento facoltativo per creare un oggetto in un computer remoto che si trova in una rete. Ecco come muterebbe il codice visto poco sopra, utilizzando questa volta la funzione CreateObject:

    Dim objWord As Word.Application
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True

    La funzione GetObject ha una struttura ancora diversa, del tipo:

    Set Set VariabileOggetto = GetObject([percorso] [, IDprog])

    dove percorso è un parametro opzionale che può rappresentare il percorso di un file esistente, Ecco come diventa quindi il codice di prima:

    Dim objWord As Word.Application
    Set objWord = GetObject("", "Word.Application")
    objWord.Visible = True

    Abbiamo così terminato la prima tipologia di oggetti esterni a Visual Basic: quelli definiti da una libreria propria. Nel caso in cui non esista alcuna libreria che li possa definirne le proprietà i metodi e gli eventi si dovà seguire questo percorso alternativo:
  • Primo passo: dichiarare una variabile oggetto del tipo di dati Object, ossia un oggetto generico, non avendo a disposizione alcun tipo di oggetto valido a cui fare riferimento.
  • Secondo passo: utilizzare un'istruzione Set facendo uso della funzione CreateObject o della GetObject, come visto in precedenza.
    Se per ipotesi Word non disponesse di una libreria propria, il blocco di codice visto poc'anzi si trasformerebbe in questo:

    Dim objWord As Object
    Set objWord = GetObject("", "Word.Application")
    objWord.Visible = True



  • Archivio:ndexed
    Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
    Proponi un argomento

    Visual Basic Italia© copyright 2000 - tutti i diritti riservati
    E-mail:
    vbitalia@libero.it <% =Now %>