|
Casella di Controllo o CheckBox (ActiveX). - dal 04/09/04 pagina vista: 7097 volte Uno degli "Oggetti ActiveX" utilizzabili nei nostri lavori è la Casella di controllo (in inglese CheckBox che tradotto liberamente significa : casella di spunta, di visto). La CheckBox :
La guida in linea riporta una descrizione dell'oggetto forse non troppo chiara : " ..il controllo CheckBox consente all'utente di eseguire una scelta tra due valori opposti... " In effetti è esattamente la funzione che svolge la CheckBox, ma letta così fa pensare più ad una scelta tra due opzioni, tipica azione svolta dalle OptionButton (Pulsante di Opzione), che consentono di selezionare una delle opzioni presenti, e di consentire l'esecuzione di istruzioni legate solo all'Opzione selezionata: quindi o l'una o l'altra (o le altre, se più di due) ma sempre e comunque una scelta tra le OptionButton presenti. Per non essere frainteso, anche con le CheckBox si istruiscono due condizioni da verificare, ma relative ad una stessa CheckBox, indipendentemente dal fatto di avere più CheckBox sulla nostra UserForm e di averle o meno selezionate tutte; in un caso del genere, l'esecuzione di istruzioni legate ad ogni singola CheckBox, non viene influenzata dalle altre eventualmente selezionate. In pratica quindi, per ogni CheckBox, si sceglie se fare un qualche cosa oppure no, selezionandola o deselezionandola, come se fosse un'interruttore spento/acceso. L'evento predefinito di una CheckBox è l'evento Click, nel quale evento è possibile inserire il codice di esecuzione istruzioni, mentre la proprietà che determina se la CheckBox è selezionata oppure no, è la proprietà Value, che di default è impostata a False (non selezionata). Difficilmente però sfrutteremo l'evento Click di una CheckBox, ma useremo altri eventi (per esempio l'evento Click di un CommandButton) per far controllare il Value di una CheckBox : se sarà selezionata faremo eseguire certe istruzioni, altrimenti no (o viceversa), oppure potremo scegliere l'evento Change di una TextBox, o altri eventi di "oggetti" inseriti sulla UserForm. Parlando di una condizione da verificare (se la CheckBox è selezionata (cioè porta il classico segno di "spunta") oppure no), le nostre istruzioni dovranno prevedere il costrutto If....Then, e si controllerà lo stato del suo Value, così:
è possibile, per valutare la condizione Vero/Falso, usare anche i numeri, che per la CheckBox però non sono 0 (False) e 1 (True), ma bensì -1 (True) e 0 (False), per cui l'esempio sopra può sostituirsi con
Un esempio di applicazione di CheckBox lo trovate nel file allegato all'articolo "Database - Gestione Magazzino", dove, nella Form per il Carico/Scarico, viene controllato il valore dell'unica CheckBox attraverso l'evento Change della TextBox usata per la Ricerca dell'articolo in funzione delle lettere digitate. Esiste poi una terza possibilità di verificare lo stato della CheckBox legata alla sua proprietà TripleState, che se impostata a True (di default è impostata a False), l' utente può scegliere tra i valori Null, True e False. Specificando dall'interfaccia utente lo stato Null, se un "controllo" è impostato su Null non è in grado di generare l'evento Click. Il valore Null viene visualizzato sotto forma di un pulsante ombreggiato (la casella è grigia). Direi che questa opportunità non ho mai avuto la necessità di sfruttarla nei vari lavori svolti; basta lasciare impostata a False la proprietà TripleState e non utilizzare nessuna istruzione posta nell'evento Click della CheckBox. Comunque un'istruzione per modificare l'impostazione potrà essere inserita, ad esempio, all'apertura della UserForm, così:
in conseguenza di questa impostazione sarà poi possibile sfruttare un'istruzione che verifichi se la CheckBox avrà lo stato Null, così:
Per avere esempi di applicazioni di CheckBox, basta sfogliare le cartelle Opzioni o Preferenze che in genere accompagnano i programmi sul nostro computer, per vedere un'infinità di utilizzi. Questa sotto è la finestra "Generale" della Finestra Opzioni di Outlook Express, dove ad ogni CheckBox corrisponde una scelta : se la CheckBox sarà attivata (con il segno di "spunta"), l'azione descritta dal testo sarà attiva:
Un piccolo esercizio che ci consente di lavorare con le CheckBox, potrebbe essere il seguente:
In questo (banale) esercizio ipotizziamo di richiedere i gusti alimentari ad un gruppo di persone, e per ogni persona registreremo (tramite le CheckBox) le loro preferenze in un range di due alternative per domanda, che potranno essere scelte anche tutte e due, selezionando le opportune CheckBox. Ad ogni "intervista" completata, registriamo le risposte date sul foglio di lavoro, sommando per ogni CheckBox selezionata, il valore di 1 nella cella all'uopo destinata. Alla fine dell'intervista otterremo il totale delle varie preferenze, ed il numero di quante persone hanno partecipato rispondendo. Vediamo la UserForm:
Nell'evento Click del pulsante Registra inseriremo le istruzioni che riporteranno nelle apposite celle i Valori relativi al Value di ogni CheckBox; poichè se una CheckBox è selezionata, il suo valore è -1, quindi numero negativo, nelle istruzioni faremo sommare il valore presente nella cella più il negativo del Value, infatti sappiamo che in matematica due negativi restituiscono un positivo. Aggiungiamo poi 1 alla cella destinata a contatore, che ci dirà tramite la textbox1 quante interviste abbiamo già registrato. Infine, a chiusura delle istruzioni, rendiamo a False il valore di tutte le CheckBox predisponendole per una nuova registrazione. Queste le due routine:
Come vedete non è difficile; sotto il foglio con una possibile impostazione e le celle corrispondenti alle istruzioni:
Buon lavoro. prelevato sul sito www.ennius.altervista.org |