FORM
I form rappresentano l'interfaccia
che Visual Basic usa per rappresentare i dati, pertanto é di
fondamentale importanza imparare a conoscerli ed usarli. Le azioni
principali legate al form sono:

Con load si carica
in memoria un form ma esso non é ancora visibile; per farlo
bisogna usare l'istruzione show : tutte le variabili del form sono
comunque disponibili. Esempio:
- load form1 'caricamento di
form1
-
- Quando si usa load viene attivato
l'evento load() del form chiamato nel quale vanno scritte le
istruzioni che dovranno essere eseguite in fase di caricamento.
Esempio:
-
- sub
form1_load()
- ...
codice
- end
sub
Con show il form
viene visualizzato, se questo é già stato caricato con
la load, o caricato e visualizzato se era da caricare: in pratica, in
quest'ultimo caso, l'istruzione show esegue inizialmente anche la
Load. Esempio:
- form1.show 'visualizza il
form1
La sintassi completa del comando show
é:
- nomeForm.show
[stile]
dove stile é un parametro
opzionale che vale vbModal o vbModeless e indica lo stile del form,
modal o modeless. Un form modal si ha quando esso é l'unico
usabile tra quelli visibili: solo alla chiusura con unload gli altri
form potranno essere usati. Con modeless invece il form può
essere usato alla pari di tutti gli altri. Se non si imposta il
parametro stile, il form viene impostato a modeless. Esempi:
- frmClienti.show
vbModal
- frmOrdini.show
vbModeless
Unload chiude un
form nel senso che lo scarica dalla memoria cancellando i valori
delle variabili associate. Con unload si genera l'evento unload()
utile per scrivere operazioni da eseguire in chiusura del form.
Esempi:
- unload
form1
- sub
form1_unload(Cancel as integer)
- .... codice
da inserire
- end
sub
Se l'unload viene fatto sull'unico
form aperto dell'applicazione, ne provoca la chiusura.L'evento unload
si ha anche quando si chiude la finestra con l'opzioni chiudi del
menu di sistema del form o il bottone di chiusura nella toolbar. Si
può notare che l'evento unload ha un parametro Cancel ; esso
inizialmente é impostato a false , ma se in qualche modo si
volesse impedire la chiusura del form, basta impostarlo a true .
Esempio:
- sub
form1_unload(Cancel as integer)
- if
msgbox("Sei sicuro di voler terminare ?",vbYesno) = vbNo
then
- cancel
= true
- end
if
- end
sub
In questo caso, appena al form viene
detto di chiudersi, viene eseguita l'istruzione msgbox con la quale
viene chiesta la conferma di chiudere o no il form. Se la risposta
è negativa, cioé non voglio chiudere, che corrisponde a
vbNo , cancel viene impostato a true ; a questo punto il form non
viene più chiuso. In caso contrario il form viene invece
chiuso.Esiste una parola speciale, chiamata me , con
la quale ci si riferisce al form in uso senza farne il nome. Per
esempio se all'interno di form1 esiste un'istruzione come:
- unload
me
sarebbe come aver scritto
- unload
form1
me é l'equivalente di form1
.
Hide nasconde, rende
invisibile un fom, senza però cancellarlo dalla memoria, per
cui i suoi control non possono essere usati, ma le variabili
mantegono il proprio valore; con show il form nascosto ritorna
visibile. Esempio
- form1.hide
Se si usa hide per un form non ancora
caricato, questi viene caricato ma non visualizzato.Ci sono altri 2
eventi caratteristici dei form: activate e deactivate. Succedono quando si attiva o si
disattiva un form dando un colpo di click di mouse sopra. Attivare un
form significa portarlo in primo piano rispetto agli altri:
disattivarlo vuol dire portare in primo piano un altro form. In
questi eventi a volte é utile inserire codice che controlli
l'attivazione o al disattivazione. Esempi:
- sub
form1_activate()
- ...
- end
sub
- sub
form1_deactivate()
- ...
- end
sub
IMPOSTARE
IL FORM DI PARTENZA
Abbiamo detto all'inizio che i form
sono un interfaccia essenziale di Visual Basic e per questo bisogna
indicare in fase di progetto, quale sia il form di partenza o, nel
caso non ci sia, indicare quale sia la procedura con cui parte
l'applicazione. Per f are questa scelta bisogna:
- andare nel menu progetto e scegliere
proprietà (su progetto di tipo exe standard)
- selezionare la pagina
project
- nella lista startup form indicare
se l'applicazione parte da un form o da una procedura indicata
come sub mainse l'applicazione parte con un form, verranno
elencati i form disponibili di cui bisogna sceglierne
uno
La procedura di partenza si deve
chiamare Main e deve risiedere in un modulo .BAS. Esempio:
- sub
main
- frmstartup.show
- end
sub
In questo caso Visual Basic
inizierà l'applicazione visualizzando il form frmStartup.Nel
caso si sia scelto di partire con un form, alla partenza verrà
eseguito il codice delle evento load del form scelto. Esempio: se
supponiamo che form1 sia il form di partenza, allora la prima
procedura eseguita sarà:
- sub
form1_load()
- ....
- end
sub
Il form di partenza ha importanza
anche in fase di terminazione del programma: infatti facendovi un
unload, dovrebbe in teoria chiudere l'applicazione; in pratica lo fa
solo se non ci sono altri form aperti. Per evitare questo inconveniente bisogna usare l'istruzione end, che
chiude l'applicazione scaricando anche gli altri form. Per cui un
form di partenza, nell'evento unload dovrebbe avere sempre
un'istruzione end. Esempio:
- sub
form1_unload(Cancel as integer)
- if
msgbox("Sei sicuro di voler terminare ?",vbYesno) = vbNo
then
- cancel
= true
- end
if
- end
- end
sub
E' stata aggiunta anche una conferma
alla chiusura, altra cosa che non dovrebbe mai mancare.L'istruzione
end però funziona anche senza inserirla in un evento unload
del form iniziale: funziona anche messa nell'evento click in
bottone:
- sub
command1_click()
- end
- end
sub
SDI
E MDI FORM
Esistono 2 tipi di form che possiamo
creare in VB: il primo é il form come visto finora, con una
sua vita propria, posizionabile in qualsiasi parte della video;
questo é un Simple Document Interface o SDI. Esiste
però un form nato per racchiudere tutti gli altri form che
verranno creati e si chiama Multiple Documente Interface o MDI. Di
form Mdi ce ne deve essere uno solo per applicazione e farà da
riferimento a tutti gli altri. In verità quasi tutte le
applicazioni partono da un mdi form, dove sono conce ntrate tutte le
scelte di menu e le funzioni di toolbar. I form che compariranno
all'interno sono detti mdi-child, figli cioé
del mdi-parent. E' possibile comunque inserire anche
dei Sdi Form e farli richiamare da form mdi o mdi-child. Un form Mdi
child non può esser modal. Un menu creato in un mdi-child si
'somma' al menu presente nel mdi-parent. Avendo la possibiltà
di avere parecchi form in un mdi, sorge il problema di ordinarli
inqualche modo: la funzione Arrange fa' ciò
ed in 4 modi:
- mdiparent.arrange.vbarrangeIcons 'dispone le icone
- mdiparent.arrange.vbcascade 'sovrappone i form
- mdiparent.arrange.vbTileHorizontal 'affianca orizzontalmente
- mdiparent.arrange.vbTileVertical 'affianca verticalmente
Ad u n mdi form non si può
applicare il metodo hide.
DataRegion
|