Sincronizza Indice |
Scarica il progetto |
Testo dell'articolo |
Stampa l'articolo |
Durante tutto il corso intermedio ci occuperemo di sviluppare passo dopo passo un progetto di un software per l'archiviazione dei CD musicali. Servirà per imparare con la pratica l'utilizzo dei controlli e delle prime istruzioni di Visual Basic. Prima di iniziare a disporre controlli sulla superficie del primo form e scrivere il relativo codice ci occuperemo di impostare le caratteristiche di base del form.
Inizialmente non faremo uso di controlli esterni anzi sfrutteremo i controlli intrinseci (Thunder) di Visual Basic ma, prima ancora di occuparci di essi, regoleremo alcune proprietà del form: Name: assegna un nome che identifica univocamente il nostro form; non sarà tuttavia possibile modificare questo valore durante la fase di esecuzione; questa infatti è una proprietà in lettura e scrittura durante la fase di progettazione ma di sola lettura (quindi non modificabile) durante la fase di esecuzione.
BorderStyle: imposta lo stile del bordo del form ed il suo comportamento. Nella maggioranza dei casi il valore da assegnare a questa proprietà sarà 1 = vbFixedSingle se il nostro form non dovrà essere ridimensionabile oppure 2 = vbSizable se esso dovrà essere ridimensionabile. L'impostazione di uno di questi due valori determinerà infatti il cambiamento automatico del puntatore del mouse quando esso si posa su uno dei bordi del form, in modo da permetterne il ridimensionamento tramite mouse.
L'impostazione della proprietà BorderStyle sul valore 2 = vbSizable determina anche la presenza iniziale dei pulsanti sulla barra del titolo. Iniziale perché se impostassimo questa proprietà ai valori 1 o 2 sarà comunque possibile regolare la presenza dei pulsanti di riduzione ad icona e di ingrandimento o ripristino mediante le proprietà MaxButton e MinButton. Anche quest'ultime sono proprietà in lettura e scrittura durante la fase di progettazione e di sola lettura durante la fase di esecuzione. L'impostazione al valore 2 permette all'utente il ridimensionamento del
form ma esso sarebbe inutile se il programmatore non provvedesse una gestione
automatica dei controlli sul form in modo da ingrandirli o ridurli in
funzione dello spazio libero. Caption: quasi superflua la descrizione... determina il testo presente sulla barra del titolo del nostro form (nel nostro caso "Archivia CD").
ControlBox: consente di far sparire tutti i pulsanti e la casella
di controllo del
form. Se tale proprietà è impostata su False
il valore delle proprietà MinButton e MaxButton è ignorato.
La proprietà è modificabile soltanto in fase di progettazione.
Font: come dice il nome stesso consente di modificare il font (carattere, grandezza e stile) delle operazioni di scrittura e dei controlli che verranno aggiunti in seguito all'impostazione di questa proprietà. Per operazioni di scrittura si intende l'utilizzo dell'istruzione Print per scrivere direttamente sulla superficie del form e non all'interno di qualche controllo. Il vantaggio di impostare questa proprietà subito sta nel fatto che tutti i controlli che verranno inseriti sul form successivamente erediteranno il valore di questa proprietà. Personalmente detesto il carattere di default MS Sans Serif e tendo ad utilizzare quasi sempre il più moderno Tahoma. Impostando sin da subito il carattere Tahoma tutti i controlli che aggiungeremo in seguito avranno come font di default il Tahoma scelto in precedenza. Si tratta ovviamente di scelte personali, ma anche per questa volta seguirò il mio personalissimo gusto utilizzando appunto Tahoma. Icon: l'icona che apparirà sulla casella di controllo del nostro form, nell'elenco delle applicazioni attive (tasti ALT+TAB) ed in tanti altri casi al posto dell'icona di VBstandard. Le icone possono contenere al loro interno una o più immagini in funzione della grandezza richiesta. Ad esempio l'icona sulla casella di controllo del form è generalmente grande 16x16 pixel; se all'interno del file .ICO è presente un'immagine di tale risoluzione essa sarà utilizzata altrimenti ne verrà scelta un'altra ed adattata mediante ingrandimento o riduzione della stessa. Nel nostro esempio utilizzeremo un'icona a forma di CD in due risoluzioni: 16x16 pixel la prima e 32x32 pixel la seconda. Le due immagini sono molto simili; la scelta di due icone sta nel fatto che se avessimo utilizzato un'icona troppo piccola oppure una troppo grande al momento della visualizzazione la resa grafica sarebbe stata davvero scadente... provare per credere. L'icona scelta è scaricabile cliccando sull'icona a fianco!
ShowInTaskBar: determina se il form in esecuzione sarà visibile sulla barra delle applicazioni. La sua utilità si rivela in quei casi in cui un progetto è composto da due o più forms che sono contemporaneamente caricati e mostrati all'utente. Non è molto gradevole riempire la barra delle applicazioni con 5 o 6 icone rappresentative dello stesso programma; la proprietà ShowInTaskBar del form principale sarà impostata su True mentre quella degli altri form sarà impostata su False.
La
regola non è assoluta anzi soggetta ad una fondamentale eccezione! Viceversa se i forms sono mostrati in modalità non modale appariranno sulla barra delle applicazioni più icone ognuna delle quali rappresentativa del suo form.
Nelle due figure la barra delle applicazioni rappresenta lo stesso numero di applicazioni aperte ma mentre nella prima figura il nostro programma (quello con l'icona a forma di CD) occupa solo una posizione con una sola icona, nel secondo caso le icone sono addirittura 5, una per ogni form mostrato in modalità non modale. Nella maggioranza dei casi la visualizzazione di un form secondario viene
fatta in modalità modale ovvero bloccante il form chiamante e pertanto
non sarà necessario preoccuparsi di disabilitare la proprietà
ShowInTaskBar. StartUpPosition: determina la posizione iniziale del form ed utilizza i valori dell'enumerazione StartUpPositionConstants. Il significato dei suoi valori è:
La proprietà StartUpPosition regola soltanto la posizione iniziale del form. Non è possibile, ad esempio, utilizzarla per centrare il form dopo la sua apparizione. Per centrare un form via codice utilizzare l'esempio proposto nell'HowTo dedicato. WindowState: determina lo stato della finestra ed utilizza i valori dell'enumerazione FormWindowStateConstants. Determina ovvero se il form è nello stato normale, ridotto ad icona oppure massimizzato; corrisponde in sintesi agli stati definibili tramite i pulsanti di riduzione, ingrandimento e ripristino ed è utilizzabile anche quando il form è definito a grandezza fissa, senza i pulsanti di ingrandimento o di riduzione ad icona. Viene utilizzata per modificare lo stato della finestra ad esempio richiamare la riduzione ad icona durante certe circostanze. In quei form a grandezza variabile (vedi la proprietà BorderStyle)
prima di ricalcolare la posizione che dovranno assumere i controlli è
necessario verificare se la finestra non sia ridotta ad icona tramite
la lettura di questa proprietà. Vediamo brevemente come apparirà la nostra interfaccia utente al fine di semplificare la comprensione del problema.
Il form è diviso in due sezioni verticali: quella a sinistra consente di effettuare le ricerche dei brani mediante un semplice meccanismo di filtro per nome del brano, nome dell'autore o titolo del CD. La sezione a destra, invece, contiene i dati informativi sul brano scelto. Mediante i pulsanti che si trovano sotto di questa sarà possibile aggiungere un brano all'archivio, eliminare quello appena scelto o modificarne i dati. Questo è ciò che proveremo a sviluppare nelle prossime lezioni, ma prima di iniziare ad implementarlo è fondamentale affrontare alcune scelte che determineranno il proseguimento dello sviluppo. In realtà non siamo ancora in grado di scegliere con precisione la soluzione migliore; pertanto ci limiteremo ad analizzare le soluzioni più semplici e scegliere quella che sembra offrire le caratteristiche migliori.
La prima decisione riguarda naturalmente l'archivio! Questa metodologia di risoluzione dei problemi è nettamente sbagliata
e superficiale. È errore molto comune mettere subito le mani
in pasta nel progetto. Ci serve un archivio? Beh, tutti quelli accennati precedentemente lo
sono. Abbiamo già deciso (vedi lezione precedente) che il nostro programma sarà utilizzato al massimo da un solo utente per volta (monoutente), ovviamente non sarà connesso in Internet e conterrà pochi dati ovvero non più di 10.000 brani. Soltanto dopo aver fatto queste scelte potremo iniziare a porci il problema della scelta dell'archivio, scelta che verrà fatta in funzione delle decisioni prese e mai viceversa. Essendo i requisiti del programma molto esigui sarà facile effettuare
la scelta dell'archivio da utilizzare. Propenderemo per un semplice file
binario con campi di larghezza fissa; sebbene l'utilizzo di un file di
testo semplice sarebbe stato sicuramente più semplice le operazioni
di ricerca dei dati sarebbero state più complesse e l'utilizzo
delle note (vedi figura 6) avrebbe complicato di molto le cose.
|
Nella prossima lezione procederemo con
lo sviluppo del progetto fin qui analizzato utilizzando come archivio un
file binario con record a lunghezza fissa.
Fibia
FBI
|
Torna alla prima lezione | Vai alla terza lezione |