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

 

 

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:

control

  • 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

Copyright @ 2007 Vince