Sincronizza Indice |
Scarica il progetto |
Testo dell'articolo |
Stampa l'articolo |
In situazioni normali un progetto, nel momento in cui viene eseguito, si avvia con il caricamento di un form principale che fornisce l'accesso a quasi tutte le funzioni principali. L'inizializzazione delle variabili globali e l'istanza delle classi vengono eseguite al caricamento del form principale, tipicamente inserite nell'eventoLoad del Form.
In altre situazioni, invece, è possibile definire una funzione particolare che sarà eseguita all'avvio del progetto, prima del caricamento di ogni form. Tale routine è la Sub Main e deve essere inserita necessariamente all'interno di un modulo standard; questo perché deve essere una funzione normale e non un metodo di classe legato all'istanza. Vediamo con calma i due casi e i loro metodi di applicazione. Immaginiamo un certo progetto, formato da un imprecisato numero di forms, ognuno con le sue funzioni. Se abbiamo disegnato i forms in ordine logico, cioé partendo dal principale e procedendo poi con tutti gli altri, quello che è stato creato per primo sarà il form che sarà caricato all'avvio. Però, se ad un certo momento, decidessimo di cambiare il form che debba essere caricato all'avvio del programma? Magari per aggiungerne un'altro che richieda una parola d'ordine per utilizzare il programma, ma che abbiamo creato solo dopo il funzionamento del progetto. Come fare? Basterà selezionare l'ultima voce del menu Progetto ovvero Proprietà nomeprogetto. Apparirà la finestra di dialogo delle proprietà del progetto mostrata nella Figura 1.
Sulla destra troviamo una ComboBox per la scelta dell'oggetto di avvio. Un click sopra di essa mostrerà tutte le possibilità di avvio per il tipo di progetto scelto. Nel nostro caso abbiamo tre form e la Sub Main. Supponiamo che il Form1 sia il form principale, quello che contiene tutte le funzionalità principali del nostro programma. Il Form3 invece conterrà alcune caselle di testo per la richiesta ed il controllo della parola di accesso. Per fare in modo che il progetto venga avviato caricando il Form3 basterà scegliere dalla lista di oggetti di avvio il nostro Form3.
Il caricamento di tutti gli altri forms dipenderà da questo form e così pure l'accesso al programma vero e proprio. In altri casi, invece può essere più comodo avviare il programma tramite la Sub Main. Possiamo infatti definire una funzione Sub di tipo Public o Private non importa per definire le operazioni da eseguire all'avvio del progetto. Vedi anche le informazioni aggiuntive sulle funzioni sugli argomenti Public e Private. L'utilità della Sub Main si rivela nel caso di progetti senza forms, ovvero che non richiedono intervento da parte dell'utente oppure in quei progetti il cui form principale è dinamico, e le sue funzionalità vengono attivate/disattivate in base a determinati parametri, file di configurazione o altro. Infatti è parecchio sgradevole vedere un programma caricare e, seppure per mezzo secondo, vedere i suoi controlli attivarsi o spostarsi per lo schermo. In operazioni di questo genere la Sub Main si occuperà di caricare il form principale in memoria, spostare o attivare i controlli e solo in seguito di mostrare il form principale. Come già detto, la Sub Main deve stare all'interno di un modulo standard ed il suo nome deve essere univoco. Non è possibile definire due Sub Main in due differenti moduli. Vediamo un esempio di applicazione di una Sub Main.
Questo esempio carica un form in base alla riga di comando utilizzata per caricare il programma. Se viene passata come riga di comando una parola tra CONTI, CALCOLA o STAMPA viene caricato il form corrispondente. In tutti gli altri casi viene caricato il form di default ovvero frmMenu che presenta all'utente le scelte possibili. |
Fibia
FBI
|