vblogo

Programmare con Microsoft Visual Basic 6

Google
nel sito web
Introduzione
Form
Control
Oggetti
Input
Menu
Array
Visualizzazione stampa
Report
File
Errori
Clipboard
DDE
OLE
Database
Sql
Download
Bibliografia

 

 

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:

form

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

Copyright @ 2007 Vince