CONTROL
Quelli elencati sono gli standard
control, che si trovano sempre nella toolbox di Visual Basic e che
sono tra i più usati. Label sono usati per
scrivere qualcosa sul form come testi o descrizioni TextBox servono per inserire dati ed per poi elaborarli:
rappresentano un importante mezzo per l'input. Delle label e del
textbox daremo una spiegazione nel capitolo riservato all'input. OptionButton non é mai l'unico in un form, ma
va sempre in gruppi, di cui solo uno viene scelto: é usato per
selezioni del tipo 'scegli uno su tanti' CheckBox é selezionabile o deselezionabile dall'utente: serve in quelle
situazioni dove ci sono varie opzioni a disposizione e l'utente
può sceglierle tutte, in parte o nessuna Combobox é una lista a scorrimento che si apre appena si
seleziona una sua riga e ritorna nella posizione contratta non appena
la rilascia: serve in quelle situazioni dove si deve fare una scelta
tra quelle elencate, come quella della provincia per esempio Listbox é simili a combobox con la differenza
che le righe sono sempre visibili: il suo numero varia a seconda
della sua altezza, della dimensione del font e del tipo del font. Ha
funzioni e usi uguali a quelli di combobox Frame é una cornice che racchiude altri control: serve a
raggruppare control usati per uno stesso scopo e per dare ordine al
form. Serve anche a creare più gruppi di scelta per gli
optionButton Command é il classico bottone,
usato praticamente dapperttutto.
ARRAY
DI CONTROL
I control dello stesso tipo si
possono raggruppare in array scrivendo nella proprietà index
un valore maggiore uguale a 0: i control che si aggiungeranno
successivamente prenderanno il nome uguale a quello iniziale ma
l'index sarà diverso e univoco. Per riferirsi ad un control
indicizzato, si usa il nome del control aggiungendo tra parentesi l'
indice; esempio:
- list1(1)
Ad una proprietà del control
ci si riferisce usando il nome indicizzato e la
proprietà:
- list1(2).listcount
Gli eventi avranno un parametro in
più, index:
- sub
command1_click(index as integer)
- end
sub
OPTIONBUTTON
E CHECKBOX
Oltre che dal frame, gli optionbutton
si possono raggruppare in modo indipendente anche dentro una
picturebox, il control che contiene immagini. Come anche altri
control, si possono disattivare, cioé restare visiibili ma
inutilizzabili: in questo caso assumono una tonalità sul
grigio. La proprietà che regola ciò é enabled. Esempio:
- option1.enabled
= true 'abilito
l'option1
Quando si seleziona un optionButton
tutti gli altri presenti nel form o nel frame, si deselezionano. La
proprietà con la quale si può controllare se un
optionButton é selezionato o meno é value e vale true quando é selezionato, false quando non lo
é. Esempio:
- selezionato
= option1.value 'restituisce il valore di option1
La proprietà value si
può assegnare anche da programma:
- option1.value
= false
Per i checkbox vale in generale
quanto detto per gli option.
COMBOBOX
E LISTBOX
Sono usate molto spesso, specialmente
quanto si vuole far scegliere una tra le varie opzioni presenti in
una lista. La numerazione degli elementi parte sempre da 0.
Funzionano entrambe allo stesso modo anche se di combobox ce ne sono
di 3 tipi a seconda del valore della proprietà style:
dropdown combo |
- style =
0
|
simple combo |
- style =
1
|
dropdown list |
- style =
2
|
Per aggiungere un elemento si usa il
metodo Additem: l'elemento aggiunto sarà
inserito in coda o in ordine di lista se la proprietà sorted é uguale a true. Questa
proprietà si imposta solo a design-time. Esempio:
- list1.additem
"prova" 'aggiunta della
parola 'prova' in list1
La proprietà newindex restituisce la posizione dell'ultimo elemento inserito.
Esempio:
- list1.clear
' cancella tutti gli elementi di una lista
- list1.additem
"Italia"
- list1.additem
"Francia"
- list1.additem
"Germania"
- ultimoIndice
= list1.newindex
Listcount restituisce il numero degli elementi presenti, mentre listindex é l'indice dell'elemento
selezionato col mouse; restituisce -1 se nessun elemento é
selezionato. List restituisce invece il valore di un
elemento in base alla sua posizione. Esempi:
- for i=0 to
list1.listcount
- print
list1.list(i) 'stampa
tutti gli elementi di list1
- next
se un elemento della lista é
stato selezionato, viene mostrato il numero dell'elemento e il
valore
- if
list1.listindex > -1 then
- msg =
"Hai selezionato l'elemento " &
list1.listindex
- msg = msg
& " che vale " &
list1.list(list1.listindex)
- msgbox
msg
- end
if
Per cancellare un elemento della
lista si usa removeitem : questa é la
sintassi completa:
- nomeListbox.removeitem
nroElementodaeliminare
Esempio:
- list1.removeItem
1 'elimina
l'elemento 1 della list1
Per cancellare tutti gli elementi si
usa clear:
- list1.clear
CONTROL
PER LA GESTIONE DEI FILE
Ci sono 3 control in grado di
controllo file e directory e sono:
- filelistbox
- dirlistox
- drivelistbox
Filelistbox
elenca i file presenti in una
directory il cui percorso viene specificato nella proprietà path ; serve per avere liste di file Dirlistbox mostra le directory di un drive e
permette di selezionarne una; serve per avere una vista gerarchica
delle directory Drivelistbox permette di
visualizzare e selezionare un drive tra quelli disponibili del
sistema. I 3 control di solito vengono usati assieme in questo modo:
con il drivelistbox si seleziona il drive da usare su cui poi
dirlistbox andrà a riprodurre la gerarchia di directory
presenti; scegliendone una si darà modo a filelistbox di
elencare i file presenti. E' un modo semplice per realizzare una
ricerca di file o un visualizzatore di file. Il codice seguente
realizza quanto detto in precedenza Al cambiare del drive1 assegno un
nuovo valore al path di dir1 che é un dirlistbox
- sub
drive1_change()
- dir1.path
= drive1.drive
- end
sub
Al variare del path di dir1 cambio
quello di file1 che é un filelistbox
- sub
dir1_change()
- file1.path
= dir1.path
- end sub
File1 non ha bisogno di altro codice
per visualizzare i file del path. Per selezionare un file di file1 si
potrebbe aggiungere:
- sub
file1_click()
- nomeFile
= file1.fileName
- end sub
Questo codice scrive in nome file il
nome del file selezionato col mouse; la proprietà fileName contiene il nome del file.
TIMER
Timer é un control che
permette l'esecuzione di codice di Visual Basic per intervalli di
tempo specificati. In fase di esecuzione é invisibile
all'utente. La sua principale proprietà é interval che
é appunto l'intervallo di tempo, espresso in millisecondi, con
il quale il codice associato ad esso, verrà eseguito. Il
codice da eseguire é nell'evento timer.
Esempio:
- sub
timer1_timer()
- lblTimer.caption
= time
- end sub
Questo codice mostra ad ogni
intervallo di tempo l'ora del sistema. La proprietà interval
si imposta per valori compresi tra 1 e 65535: il valore 10000
equivale a 10 secondi. Il timer si può disabilitare impostando
a false la proprietà enabled. Tutti le proprietà del
timer vanno impostata a design-time.
ACTIVEX
CONTROL
Un control activex é un
control che ha un proprio file che deve essere aggiunto al un
progetto per poterlo utilizzare, a differenza degli standard control
visti finora. Questi file sono di 2 tipi: VBX e OCX. I primi sono
file a 16 bit usati per compatibili tà con versioni
precedenti; i secondi sono file sia a 16 sia 32 bit quindi più
recenti e in grado di trarre vantaggio dalla tecnica OLE e per questo
sono anche chiamati OLE control. Le ultime versione di VB usano solo
file OCX. Questi control possono este ndere i n maniera considerevole
le capacità di Visual Basic in quanto sul mercato ne esistono
a centinaia, in grado di compiere svariate azioni; vediamo
alcuni.
TabStrip
fa la funzione dei separatori di
schedario veri e propri: si tratta in pratica di una serie di
pannelli nei quali vanno inclusi i control, che s i aprono come i
separatori di schedario
TreeView
é la visualizzazione in forma
gerarchica di un serie di dati, disposti come si trattasse di un
albero, da cui il nome. Utile per visualizzare gerarchie di
dati.
ListView
permette di visualizzare dentro ad un
finestra, file e directory rappresentati con icone grandi o piccole o
in elenco dettagliato o normale. Serve quando si vuole una
rappretazione dei file in modo user friendly.
Toolbar
permette di gestire la toolbar di una
finestra window, dove inserire pulsanti che eseguono qualcosa.
StatusBar
é una barra che contiene
informazioni inerenti allo stato dell'applicazione, come ad esempio,
il numero delle pagine in un documento word; di solito viene posta in
basso del form.
CommonDialog
permette di gestire finestre di
dialog con strumenti che si ripetono continuamente in windows come
colori, font, help, apertura e salvataggio file, stampa.
Grid
é una griglia simile a quella
di excel, usata spesso per visualizzare dati in forma tabellare. In
alcune versione é in grado di interagire direttamente con un
database
TREEVIEW
Permette di visualizzare in modo
gerarchico delle informazioni. Per fare ciò bisogna usare una
proprietà chiamata nodes che é una collezione di
oggetti node: questo ci permette di inserire nuovi elementi a
treeview:
- dim nodo as
node
- set nodo =
treeview1.nodes.add(, , "R","root")
Dal momento che parliamo di strutture
gerarchiche ci riferiamo al padre di un elemento come a
quell'elemento che l'ha generato. Con l'istruzione precendente
abbiamo creato ilprimo elemento della gerarchia per il semplice fatto
che non ha padre. La sintass i completa di add é:
- oggetto.add
([codice], [relazione], [chiave],
valore, [immagine], [immagineselezionata]) dove:
codice é il codice a cui
'agganciare' la nuova chiave
relazione é come il nuovo
codice entra in relazione con codice. Può assumere questi
valori:
- chiave é il codice di
identificazione del nuovo elemento
- valore é il valore che
viene inserito nella scala gerarchica
- immagine del nodo
aggiunto
- immagine selezionata é
l'immagine del nodo aggiunto quando viene selezionato
Esempi:
- set nodo =
treeview1.nodes.add("R", tvwfirst, "F1","figlio di
root")
questo nodo si aggancia al primo
inserito
- set nodo =
treeview1.nodes.add("F1", tvwchild, "N1","nipote")
questo nodo si aggancia al "figlio di
root"
COMMON
DIALOG
Per rendere più user friendly
un'applicazione, conviene a volte usare delle finestre di dialogo di
sistema che compaiano in svariate applicazioni. Visual Basic
può accedere ad alcune di queste con common dialog. Con esso
si possono utitlizzare delle fines tra di dialogo per :
- colori
- font
- leggere e salvare
file
- stampe
help Per farlo si prendere il control
common dialog dalla toolbox e lo si piazza nel form: in fase di
esecuzione common dialog non é visibile. Per scegliere cosa
far fare al common dialog ci si avvale di 6 metodi:
showColor |
colori |
showfont |
font |
showHelp |
Help |
showOpen |
apertura file |
showSave |
salvataggio file |
showPrinter |
stampa |
Per usare la finestra di dialogo di
apertura file si farà:
- dialog1.showOpen
Naturalmente a seconda del tipo di
dialogo scelto, il codice dovrà fare diverse. Nel caso di
utilizzo dei file ad esempi ci sono delle proprietà che devono
essere utilizzate:
- dialog1.filter
= descrizione1|filtro1|descrizione2|filtro2
che serve a visualizzare solo i file
indicati come filtro. Esempio:
- dialog1.filter
= "Immagini (*.bmp)|*.bmp" Invece
- dialog1.filename
conterrà il nome del file
selezionato, se non selezionato resta vuoto. Esempio: selezione di un
file
- function
scegliFile()
- dialog1.dialogTitle
= "Scegli un file"
- dialog1.filter
= "Immagini (*.jpg)|*.jpg"
- dialog1.showopen
- if
dialog1.filename <> "" then
- scegliFile=dialog1.filename
- end
if
- end function
Questa funzione restituisce il nome
di un file jpg scelto.
GRID
Serve per visualizzare dati in forma
tabellare, organizzati cioé in righe e colonne. I dati si
possono inserire cella per cella, dando prima le coordinate e poi il
valore della cella, oppure per una o più righe
contemporaneamente. Le proprietà principali di grid
sono:
cols |
é il numero massimo
di colonne presenti: non può mai essere inferiore a
2 |
rows |
numero massimo di
righe |
fixedcols |
numero fisso di righe a
sinistra ,usato per intestazioni di colonne |
fixderows |
numero fisso di righe in
alto, usato per intestazioni di righe |
Per inserire una valore in una cella
bisogna:
- dare le coordinate della
cella
- inserire il valore
Le coordinate di una cella si
ottengono con grid.col per le colonne e grid.row per le righe; il contenuto di una cella si
ha con grid.text. Esempio:
- grid.col =
7
- grid.row =
9
- grid.text =
"prova"
Ho inserito il valore "prova" nella
cella della colonna 7 riga 9. Ricordo che le numerazioni partono
sempre da zero. Lo stesso sistema viene usato per leggere il valore
di una cella:
- grid.col =
7
- grid.row =
9
- valore =
grid.text
Per inserire una nuova riga si usa il
metodo Additem la cui sintassi é:
- grid.additem
valore[,posizione]
Questa istruzione permette di
inserire una, parte o più righe in una grid, tenendo presente
però che il carattere di separazione tra 2 celle é il
tabulatore, il cui carattere ascii é il 9, mentre il
separatore di riga é il return , ascii13. Tenendo presen te
quanto detto, vediamo come s'inserisce una nuova riga.
- grid1.Additem
valore1 & chr(9) & valore2 & chr(9) & valore3
Con questa istruzione abbiamo
inserito i valori di 3 celle adiacenti; chr(9) serve per separare i
valori i n celle differenti. La posizione in additem indica il numero
di riga dove si vogliono inserire i nuovi dati; é un valore
opzionale e se omesso i nuovi dati sono inseriti in coda Per
cancellare una riga su usa il metodo:
- grid1.removeitem
numeroRiga
numeroRiga é il numero di riga
da cancellare e deve essere compreso tra zero é grid.rows-1 .
Esempio:
grid1.removeItem
7
Con grid.Colwidth(nrocolonna) e grid.rowHeight(nroriga) si possono
impostare rispettivamente la larghezza di una colonna e l'altezza di
una riga in twips. Esempi:
- dim i as
integer
- for i =4 to
10
- grid2.colwidth(i)
= 250
- next
- grid2.rowHeight(0)
= 80
Per impostare il
numero di colonne in una griglia si usa:
- grdProva.cols
= nroColonna
-
- e quello delle
righe
-
- grdProva.rows
= 25
Grid.rows si incrementa o decrementa
automaticamente se vengono usati metodi additem e removeitem.
DataRegion
|