![]() |
![]() Sincronizza Indice |
![]() Scarica il progetto |
![]() Testo dell'articolo |
![]() Stampa l'articolo |
L'insieme dei controlli Thunder
contiene tre controlli dedicati alla scelta di uno o più files
su richiesta dell'utente; si tratta dei controlli DriveListBox
Ogni volta, infatti, che all'utente è richiesto di selezionare
un file per l'apertura o il salvataggio, le applicazioni Windows presentano
una familiare finestra di dialogo comune; è possibile richiamare
questa finestra utilizzando il controllo OCX
Microsoft Common Dialog Data la generalità d'uso delle due funzioni si è preferito
inserirle all'interno di un modulo standard
La struttura OPENFILENAME verrà utilizzata da entrambe le funzioni di richiesta di apertura e di salvataggio e richiede la specifica dei filtri sui nomi dei files visualizzati, del titolo della finestra, della cartella iniziale presentata e la scelta di una serie di flags che determineranno il comportamento della finestra. Per brevità non saranno presentati tutti i flags ma solo quelli utilizzati in questa soluzione:
Le due costanti specificheranno di verificare l'esistenza del file scelto e di nascondere la casella di controllo Apri in sola lettura, durante l'operazione di apertura.
Le due funzioni GetOpenFileName e GetSaveFileName servono rispettivamente per l'operazione di apertura e di salvataggio su file. Entrambe utilizzano una variabile di tipo OPENFILENAME e si differenziano solo per pochissime differenze.
La variabile OFNAME sarà utilizzata da entrambe le funzioni di apertura e salvataggio:
La funzione ShowOpen utilizza lo stesso nome del metodo
La funzione ShowOpen si compone di due soli passaggi: riempimento della
variabile OFNAME (righe 35-47) e richiamo dellea funzione GetOpenFileName. Alla riga 48 è richiamata la funzione GetOpenFileName con la struttura OFNAME e nel caso che la funzione restituisca un valore diverso da zero, sarà possibile leggere il nome del file selezionato dalla struttura OFNAME. La funzione ShowSave opera in maniera analoga alla precedente salvo che per l'impostazione dei flags, qui non necessari:
Come già accennato la differenza si limita alla riga 63 poiché non saranno necessari particolari controlli durante il salvataggio del file; la riga 65 inoltre richiama la funzione GetSaveFileName anziché la precedente.
La pressione del pulsante Apri mostrerà la relativa finestra di dialogo per l'apertura, mentre la pressione del pulsante Salva mostrerà la finestra di salvataggio.
Il richiamo delle due funzioni precedentemente esposte richiede il passaggio del form per il quale la finestra diverrà modale e il filtro di visualizzazione; le due funzioni si differenziano anche per il filtro utilizzato: la prima delle due funzioni utilizzerà un solo filtro corrispondente ai files di testo (*.txt), mentre la seconda funzione utilizzerà due differenti filtri, corrispondenti ai files di testo (*.txt) ed a tutti i files (*.*).
Ogni filtro si compone di due parti: il testo visibile ed il filtro vero e proprio, separati tra loro dal codice ASCII 0; facendo riferimento al primo esempio il filtro si compone della descrizione "Files di testo (*.txt)" e del filtro "*.txt". Per separare un filtro dal successivo si utilizza lo stesso codice ASCII
0, come segue: Nell'esempio alle righe 9-11 sono assegnati due filtri: "Files di testo (*.txt)" e "Tutti i files (*.*)" e la differenza può dimostrarsi eseguendo il progetto.
La pressione del pulsante Apri mostrerà una finestra simile a quella mostrata nella figura 2 (lo stile della stessa dipende dalla versione di Windows installata); la casella in basso Tipo file specifica i filtri nella visualizzazione dei files. Naturalmente saranno visualizzati solo i files corrispondenti al filtro selezionato.
|
Tutte le moderne applicazioni Windows dovrebbero evitare l'uso dei controlli DriveListBox, DirListBox e FileListBox perché troppo antiquati rispetto l'evoluzione dei sistemi Windows. L'uso del controllo Microsoft Common Dialog può dare un aspetto molto più moderno al progetto, ma richiede l'uso di un controllo esterno aggiuntivo. Il modulo qui presentato riproduce esattamente il comportamento dei metodi ShowOpen e ShowSave del controllo di casa Microsoft, rendendo quindi superfluo l'uso di quel controllo se utilizzato solo per i due metodi dedicati alla scelta di un file. Fibia
FBI
|
![]() |