Guide e Tutorials:indexed | ||||||||
Creare un Add-In (Ottava parte) Nel corso dell'ultimo articolo della serie eravamo arrivati a dichiarare le variabili incluse nel modulo di codice di Form1, dopo aver dato loro un significato concreto. Vediamo adesso di risolvere alcuni problemi generati dall'utente, per poi evitare errori fastidiosi al momento dell'esecuzione. Un errore prima della chiusura dell'aggiunta infatti bloccano l'applicazione (a meno che non sia specificata in modo esplicito la volontà di proseguire anche in caso di malfunzionamento) ancora prima dell'evento OnDisconnection. Questo non sarebbe una cosa particolarmente grave se all'interno di tale evento non avessimo incluso le due linee di codice che ci permettono di eliminare la voce 'Ridimensiona' dal menu 'Strumenti' e l'icona "Bollicine.bmp" dalla toolbar di Visual Basic. Un errore porterebbe dunque a non poter togliere questi elementi in modo automatico allo scaricamento dell'aggiunta. L'eventuale problema generato dall'utente può nascere se si lascia vuota le caselle di testo Text1 e Text2 che rispettivamente rappresentano la percentuale dell'altezza e della lunghezza dei controlli presenti sulla form da utilizzare al momento dell'operazione di ridimensionamento. Per ovviare al problema, possiamo pensare ad esempio di lasciare la dimensione dei controlli così com'è, utilizzando una percentuale del 100% sull'attuale dimensione sia in altezza che in larghezza. Utilizziamo la funzione IsNumeric che ci indicherà non solo se nella casella di testo sono stati immessi caratteri non numerici ma anche se non è proprio stato introdotto nulla. Sempre nella sottoprocedura Command1_Click che avevamo lasciato in sospeso la volta precedente aggiungiamo queste poche linee di codice:
La funzione IsNumeric è trattata in dettaglio in un'articolo della rubrica 'Lo sapevi che...?'. Adesso che le preferenze dell'utente in fatto di dimensioni sono accettabili in ogni senso, possiamo dare un significato ed un valore ad alcune delle variabili che erano state dichiarate nell'articolo precedente. In particolare facciamo assumere alla variabile booleana RidimensionaTutto il valore del controllo Option2. Si ricorderà infatti che i due valori (o stati) possibili per gli OptionButtons sono True, nel caso in cui siano selezionati e False nel caso opposto. Si può quindi evitare di dire "...se l'Option2 è vero allora RidimensionaTutto è vero, altrimenti è falso..." assegnando direttamente a RidimensionaTutto il valore di Option2, in questo modo:
Adesso assegnamo alle variabili PercentualeX e PercentualeY i rispettivi valori rappresentati dal rapporto tra la percentuale della dimensione (in altezza e lunghezza) dei controlli indicata dall'utente ed il valore 100:
Ora andiamo verso un passaggio un po' più ostico. Dobbiamo considerare infatti il caso in cui l'utente abbia selezionato (e quindi voglia ridimensionare) una form. Si deve in tal caso aver l'accortezza di impostare un riferimento alla form scelta tra le tante che possono far parte di un singolo progetto, assegnando tale riferimento alla variabile oggetto che abbiamo chiamato VbF e dichiarato come oggetto form di Visual Basic. Possiamo risolvere la questione in questo modo:
Non chiudiamo l'operazione con un End If perchè dobbiamo adesso cercare tutti i controlli che sono sulla form. Eseguiamo quindi un vero e proprio loop che ci porta a controllare tutti gli oggetti eventualmente presenti:
Si ricorderà che VbC è la variabile oggetto definita come controllo di Visual Basic. Quindi, per ogni controllo su VbF ossia su Form1, nel caso in cui il controllo sia stato selezionato dall'utente per l'operazione di ridimensionamento oppure nel caso in cui l'utente abbia selezionato tutti i controlli:
tutti i controlli ridimensionabili dovranno assumere le nuove proporzioni. E per quelli non ridimensionabili? La cosa diventa non così automatica come per gli altri. Sarà necessaria una valutazione più dettagliata che vedremo nel corso del prossimo articolo. Prima di terminare però riassumiamo il codice completo relativo a Form1, fino a questo momento:
|
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 |