Guide e Tutorials:indexed | |||||||||||||||||||
Creare un Add-In (Terza parte) Come si è già visto dobbiamo cominciare a gestire l'evento OnConnection dell'oggetto IDTExtensibility che rappresenta in poche parole l'eventualità che l'aggiunta sia caricata dalla finestra 'Gestione Aggiunte'. Per aggiungere la sottoprocedura di tale evento in modo automatico, in modo da evitare errori di trascrizione sarà sufficiente premere il pulsante 'Visualizzatore oggetti' dalla toolbar di Visual Basic e selezionare dalla lista denominata 'Classi' l'oggetto IDTExtensibility, raggiungibile anche selezionando la libreria VBIDE di cui l'oggetto fa parte. Fatto ciò verrà visualizzata nella lista di destra tutti i membri dell'oggetto in questione ossia, come già accennato, OnConnection, OnDisconnection, OnAddinsUpdate e per finire OnStartupComplete. L'immagine sottostante visualizza le operazioni da compiere nonchè i risultati ottenuti: Per una definizione dettagliata di questi quattro eventi riprendere l'articolo precedente. Tra essi scegliere quello immediatamente utile, ossia nel nostro caso OnConnection. Dopo aver cliccato due volte su tale elemento della lista, si noterà che la sottoprocedura sarà apparsa all'interno del modulo di classe. Se così non fosse, basterà copiare il seguente codice:
dove VBInst definisce l'oggetto 'istanza corrente di Visual Basic' ossia si riferisce alla corrente sessione di Visual Basic. Aprire due sessioni differenti di Visual Basic attive anche contemporaneamente genera due oggetti VBInst differenti, sebbene la cosa non c'interessi affatto (non possiamo infatti chiedere ad un'aggiunta di operare su una sessione diversa da quella nella quale è stata caricata oppure addirittura di operare in una sessione che apriremo ad esempio domenica prossima (!)). ConnectMode rappresenta invece la modalità di connessione dell'aggiunta ossia lo stato dell Add-In all'avvio della sessione corrente di Visual Basic. Capire come impostare lo stato di un'aggiunta è un fattore fondamentale per rendere disponibile all'utente il nostro programma. Ecco dunque una tabella che riassume tutti gli stati possibili di un'aggiunta:
Proseguendo la nostra lista troviamo AddInInst ossia l'istanza dell'aggiunta, e per finire custom() ossia un parametro personalizzato che può contenere informazioni di qualsiasi utilità definiti dallo sviluppatore. Adesso che tutto è stato definito riguardo a OnConnection possiamo introdurre nel modulo di classe un po' di codice. Cominciamo innanzitutto con la gestione dell'errore. Nel caso infatti che qualcosa vada storto, dovremo rendere l'utente a conoscenza di ciò che è accaduto. Rimandiamo quindi ad un etichetta di linea denominata ErroreGenerico dove attraverso il metodo Description dell'oggetto Err descriveremo l'errore eventualmente incontrato. Per i dettagli sull'oggetto Err fare riferimento all'Indice analitico. Ecco come si sviluppa l'evento:
Ora che è stato sviluppato questo mirabile progetto, salviamo il tutto e generiamo l'aggiunta. Naturalmente questa è solo una prima prova per controllare che tutto vada a buon fine e che non ci siano stati errori. Inoltre ci permetterà di prendere confindenza con il procedimento di compilazione finale dell'aggiunta. Prima però dobbiamo fare alcune modifiche. Per visualizzare all'apertura dell'Add-In qualcosa di concreto, inseriamo una finestra di messaggio tra il comando On Error GoTo ErroreGenerico e l'etichetta ErroreGenerico. Finestra che dovrebbe apparire non appena la nostra applicazione verrà richiamata automaticamente o manualmente dalla finestra Gestione Aggiunte. Ecco dunque come si presenterà il modulo di classe di Ridimensiona:
mentre il modulo sarà sempre invariato:
Entriamo dunque in una fase importante dell'articolo. Perchè tutto funzioni correttamente è necessario che il progetto comprenda tutti i quattro membri di IDTExtensibility. Siccome fino a questo momento abbiamo considerato soltanto OnConnection, inseriremo nel modulo di classe i tre rimanenti senza aggiungere ad essi altro codice. Immetteremo soltanto dei commenti in modo da far rimanere la sottoprocedura all'interno del modulo di classe:
Per adesso dunque non è necessario preoccuparsi del codice riportato qui sopra. Basti sapere che anche in questo modo l'aggiunta funzionerà correttamente (sebbene con funzioni limitate). Riassumiamo qui sotto l'intero codice del modulo di classe, ricordando che il modulo di codice rimane sempre invariato:
Adesso il lavoro è terminato. Bisognerà dunque passare alla finestra Progetto e rinominare ogni suo elemento in modo da poter essere poi interpretato dalla Gestione Aggiunte di Visual Basic, utilizzando i nomi della seguente tabella:
La figura sotto mostra la finestra Progetto come appare dopo le modifiche appena descritte: Adesso si può salvare l'intero progetto nella cartella che più si preferisce attraverso l'opzione File del menu principale di Visual Basic, voce 'Salva progetto' dal menu a discesa che apparirà come nell'immagine sottostante: Per finire, sempre dal menu principale di Visual Basic scegliere File e dal menu a discesa che comparirà selezionare la voce 'Crea Ridimensiona.dll' anche se il nome può variare in base a ciò ch è stato impostato durante la prima lezione nella finestra Progetto: Ora sarà necessario visualizzare la Finestra Immediata. Dobbiamo infatti simulare il programma di setup della nostra aggiunta, permettendole di aggiornare il file VBAddIn.INI. Richiameremo dunque la sottoprocedura AddToIni contenuta nel modulo di codice, che ricordiamo richiama la funzione WritePrivateProfileString. Per aggiornare il file scriviamo dunque AddToIni nella finestra Immediata e diamo l'invio. Dovrebbe apparire il seguente messaggio (il cui codice è naturalmente anch'esso contenuto nel codice del modulo): Adesso il file VBAddIn.INI contiene anche il nostro Ridimensiona. Basterà dunque scegliere la finestra Gestione Aggiunte per visualizzare la nostra aggiunta denominata ancora provvisoriamente AddInProject.AddInClass. Selezionare questa aggiunta e ontrassegnare col segno di spunta la casella Caricato/Scaricato: dare l'OK alla finestra Gestione Aggiunte. Dovrebbe apparire nell'IDE di Visual Basic il nostro messaggio di saluto all'avvio dell'aggiunta: In caso contrario sincerarsi di non aver saltato alcun passaggio. Nel corso dell'articolo successivo svilupperemo ulteriormente il codice relativo all'evento visto oggi. |
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 |