La creazione di un progetto da zero in Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Creare un Add-In (Settima parte)

Abbiamo visto l'ultima volta quali caratteristiche deve avere la form che permette di operare sui controlli dell'applicazione in fase di progettazione.
E' stato anche discusso il problema della posizione dalla quale richiamare Form1, ossia la nostra interfaccia grafica. Abbiamo scelto quindi di visualizzarla alla pressione dell'icona sulla toolbar di Visual Basic o sulla voce 'Ridimensiona' nel menu Strumenti.
Adesso apriamo il modulo di codice relativo a Form1. Dobbiamo cominciare infatti a sviluppare il codice che ci permetterà di ridimensionare i controlli.
Il primo passo da compiere in tal senso è gestire l'evento scaturito dalla pressione del pulsante Cancella (che se si ricorda è il pulsante Command2) da parte dell'utente.
In questo caso non la form verrà scaricata e quindi resa non più visibile, ma questo non avverrà per l'aggiunta, che rimarrà in ogni caso disponibile all'interno del menu 'Gestione Aggiunte'.
Aggiungiamo quindii il semplice codice per la chiusura della form:

Private Sub Command2_Click()
Unload Form1
End Sub

Il passo successivo consiste nel progettare una sottoprocedura che risponda all'eventualità nella quale l'utente prema il pulsante Applica dopo aver inserito nelle apposite caselle di testo i dati relativi alle dimensioni (in percentuale) dei controlli e dopo aver scelto quali e quanti controlli ridimensionare.
Sarà quindi necessario, all'interno di tale sottoprocedura, dichiarare due variabili che saranno utili successivamente nella determinazione della percentuale che indica di quanto ridurre od espandere le dimensioni dei controlli.
Possiamo chiamare queste due variabili PercentualeX e PercentualeY dove la prima naturalmente si riferisce alla lunghezza del controllo (proprietà Width) mentre la seconda all'altezza (proprietà Height).
Inseriamo quindi la sottoprocedura Command1_Click e la dichiarazione delle due variabili appena viste:

Private Sub Command1_Click()
Dim PercentualeX, PercentualeY As Single
End Sub

Adesso inseriamo una piccola gestione dell'errore, sintatticamente molto comune ma di grande importanza in questo caso. Basti immaginare il caso in cui l'utente scelga di ridimensionare alcuni controlli che non supportano le proprietà altezza (Height) e lunghezza (Width).
L'applicazione subirebbe un'improvviso blocco soltanto perchè non abbiamo tenuto conto di questa possibilità (che per altro non è nemmeno tanto remota).
Includiamo allora nella sottoprocedura che stiamo studiando:

On Error Resume Next

Si potrebbe pensare di rimandare ad un blocco di codice che descriva in modo dettagliato l'errore, magari utilizzando l'oggetto Err. La cosa però va oltre il fine di questo articolo. Ognuno pensi a come può sviluppare questo codice in base alle proprie esigenze.
Un piccolo appunto, che potrebbe essere anche banale: di solito l'istruzione On Error Resume Next viene posta come prima linea della sottoprocedura per istruire l'applicazione ad ignorare l'errore eventualmente causato nel corso di tutta la sottoprocedura. A noi però questo non interessa particolarmente poichè (a meno di un errore di sintassi che dovrebbe essere portata alla luce in fase di compilazione del DLL ActiveX) le dichiarazioni di due variabili non dovrebbero generare errori.
Chiusa questa parentesi, il passo successivo è quello di dichiarare una variabile che contenga il riferimento alla Form. In seguito si vedrà come questo accorgimento può essere importante.
Inseriamo quindi nella stessa sottoprocedura:

Dim VbF As VBForm

Altro passo importante è quello di dichiarare una variabile oggetto attraverso la quale poter far riferimento ad un determinato controllo che si vuole ridimensionare sulla form.
Chiamiamo per esempio tale variabile VbC e dichiariamola in questo modo:

Dim VbC As VBControl

Ora ci servirà una variabile booleana (che assume i valori True oppure False) necessaria a istruire l'applicazione dell'eventualità in cui l'utente abbia scelto di ridimensionare tutti i controlli della form oppure qualcuno in particolare.
Chiamiamo questa variabile bolRidimensionaTutto:

Dim RidimensionaTutto As Boolean

Per ultimo, come già abbiamo fatto nel modulo di classe, dobbiamo assegnare a VBI un puntatore all'oggetto VBA dell'IDE corrente di Visual Basic.
Non ripetiamo quindi quanto già detto in precedenza. La dichiarazione è dunque la seguente:

Dim VBI As VBIDE.VBE

Impostiamo l'istanza di Visual Basic sulla quale opererà la nostra aggiunta come riferimento alla nostra classe ossia a AddInClass:

Set VBI = AddInClass.VBI

Proviamo a compilare il DLL ActiveX e a caricare l'aggiunta. Visualizzando Form1 e premendo il pulsante Applica, nulla sembrerà cambiare. Ed infatti è proprio così. A livello di codice però sono state introdotte e definite le variabili fondamentali per poter ridimensionare i controlli.
La prossima volta si creerà il codice specifico per raggiungere tale obiettivo.
Prima di terminare però riassumiamo il codice completo relativo a Form1:

Private Sub Command2_Click()
Unload Form1
End Sub
Private Sub Command1_Click()
Dim PercentualeX, PercentualeY As Single
On Error Resume Next
Dim VbF As VBForm
Dim VbC As VBControl
Dim RidimensionaTutto As Boolean
Dim VBI As VBIDE.VBE
Set VBI = AddInClass.VBI
End Sub



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