TITOLO DELL’EDIZIONE ORIGINALE
Programming Microsoft Visual Basic 6
Copyright © 1999-2001 by Francesco Balena
All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher.
Copertina per l’edizione italiana: Mondadori Informatica SpA
Riduzione e adattamento: Francesco Balena
Revisione: Carla Veronesi
Realizzazione editoriale: Publish Art – Pavia
Ogni cura è stata posta nella raccolta e nella verifica della documentazione contenuta in
questo libro. Tuttavia né gli autori, né Microsoft Press, né Mondadori Informatica possono assumersi alcuna responsabilità derivante dall’utilizzo della stessa.
Lo stesso dicasi per ogni persona o società coinvolta nella creazione, nella produzione e
nella distribuzione di questo libro.
Active Desktop, ActiveX, il logo BackOffice, FrontPage, IntelliSense, Microsoft,
Microsoft Press, MS-DOS, Visual Basic e Windows sono marchi registrati o marchi di
Microsoft Corporation negli Stati Uniti e in altri Paesi.
Altri nomi di prodotti e di aziende citati in queste pagine possono essere marchi dei
rispettivi proprietari.
© 2001 Mondadori Informatica
Prima edizione: Settembre 1999
Prima edizione Miti Informatica: Maggio 2001
ISBN 88-8331-238-4
Finito di stampare nel mese di Maggio 2001
per conto della Arnoldo Mondadori Editore S.p.A.
presso Cles (Trento)
Stampato in Italia – Printed in Italy
Sommario
Sommario
Prefazione
ix
Ringraziamenti
xi
Inroduzione
xiii
1 ■ Primi passi in Microsoft Visual Basic 6
L’IDE o ambiente di sviluppo integrato
Avvio dell’IDE
Scelta del tipo di progetto
Le finestre dell’IDE
I menu
Le barre degli strumenti
La finestra Toolbox
Il vostro primo programma Visual Basic
Aggiunta di controlli a un form
Impostazione delle proprietà per i controlli
Assegnazione di nomi ai controlli
Spostamento e dimensionamento di controlli
Impostazione dell’ordine di tabulazione
Aggiunta di codice
Esecuzione e debug del programma
Miglioramento del programma di esempio
Pronti, compilazione, via!
2 ■ Introduzione ai form
Proprietà comuni
Le proprietà Left, Top, Width e Height
Le proprietà ForeColor e BackColor
La proprietà Font
Le proprietà Caption e Text
Le proprietà Parent e Container
Le proprietà Enabled e Visible
La proprietà hWnd
Le proprietà TabStop e TabIndex
Le proprietà MousePointer e MouseIcon
La proprietà Tag
Altre proprietà
Metodi comuni
Il metodo Move
Il metodo Refresh
Il metodo SetFocus
Il metodo ZOrder
1
2
2
2
3
7
9
11
13
14
15
17
18
19
20
22
23
25
29
31
31
32
33
34
35
36
36
38
38
39
40
41
41
42
42
43
iii
Sommario
Eventi comuni
Gli eventi Click e DblClick
L’evento Change
Gli eventi GotFocus e LostFocus
Gli eventi KeyPress, KeyDown e KeyUp
Gli eventi MouseDown, MouseUp e MouseMove
L’oggetto Form
Proprietà di base dei form
Miglioramento delle prestazioni dei form
Ciclo di vita di un form
L’evento Unload
La collection Controls
L’oggetto Screen
Stampa del testo
Metodi grafici
La proprietà DrawMode
La proprietà ScaleMode
3 ■ Controlli intrinseci
I controlli TextBox
Proprietà run-time
Intercettazione delle operazioni di tastiera
Procedure di convalida per i numeri
La proprietà CausesValidation e l’evento Validate
Campi a tabulazione automatica
I controlli TextBox multiriga
I controlli Label e Frame
I controlli Label
I controlli Frame
I controlli CommandButton, CheckBox e OptionButton
I comandi CommandButton
I controlli CheckBox
I controlli OptionButton
Modalità grafica
I controlli ListBox e ComboBox
I controlli ListBox
I controlli ComboBox
I controlli PictureBox e Image
Il controllo PictureBox
Il controllo Image
I controlli ScrollBar
I controlli DriveListBox, DirListBox e FileListBox
Altri controlli
Il controllo Timer
Il controllo Line
Il controllo Shape
Il controllo OLE
I menu
Accesso ai menu in fase di esecuzione
Menu pop-up
Array di controlli
Condivisione di procedure di evento
iv
44
44
45
45
46
48
50
50
51
53
57
57
58
59
62
67
71
73
74
75
76
77
80
82
83
84
84
86
86
86
87
88
88
90
90
98
100
100
103
104
108
110
110
111
111
111
112
113
115
116
117
Sommario
Creazione di controlli in fase di esecuzione
Iterazione sugli elementi di un array di controlli
Array di voci di menu
4 ■ Variabili e routine
Visibilità e durata delle variabili
Variabili globali
Variabili a livello di modulo
Variabili locali dinamiche
Variabili locali statiche
Descrizione dei tipi di dati nativi
Il tipo di dati Integer
Il tipo di dati Long
Il tipo di dati Boolean
Il tipo di dati Byte
Il tipo di dati Single
Il tipo di dati Double
Il tipo di dati String
Il tipo di dati Currency
Il tipo di dati Date
Il tipo di dati Object
Il tipo di dati Variant
Il tipo di dati Decimal
Tipi di dati aggregati
Tipi definiti dall’utente
Array
Collection
Procedure e funzioni
Visibilità
Parametri e valori di ritorno
Gestione degli errori
5 ■ Le librerie di Visual Basic for Applications e di Visual Basic
Flusso di controllo
Istruzioni di salto
Le istruzioni Loop
Altre funzioni
Lavorare con i numeri
Operatori matematici
Operatori di confronto
Operatori booleani e bit-wise
Arrotondamento e troncamento
Conversione tra diverse basi numeriche
Opzioni di formattazione dei numeri
Numeri casuali
Il lavoro con le stringhe
Operatori e funzioni stringa di base
Funzioni di conversione
Sottostringhe Find e Replace
Opzioni di formattazione per le stringhe
118
118
119
121
122
122
124
124
125
126
126
126
127
127
128
128
128
129
130
130
131
134
134
134
136
142
145
145
147
153
161
162
162
165
167
168
168
169
170
171
171
172
174
175
175
177
177
180
v
Sommario
Uso di date e orari
Lettura e impostazione di data e ora correnti
Aritmetica sulle date
Opzioni di formato per i valori di data e ora
Interazione con Windows
L’oggetto App
L’oggetto Clipboard
L’oggetto Printer
6 ■ Classi e oggetti
I concetti di base
I principali vantaggi della programmazione a oggetti
Il primo modulo di classe
Proprietà, metodi ed eventi
Proprietà di sola lettura e di sola scrittura
Uso avanzato delle proprietà
Attributi
Le istruzioni che agiscono sugli oggetti
L’evento Class_Terminate
7 ■ Eventi e polimorfismo
Eventi
Eventi e riutilizzabilità del codice
Sintassi degli eventi
Una prima applicazione di esempio completa
Multicasting
Polimorfismo
Uso del polimorfismo
Polimorfismo e late binding
Uso delle interfacce
8 ■ Database
Accesso ai dati
OLE DB
ADO
Visual Database Tools
La finestra DataView
La finestra Database Diagram
La finestra Query Builder
Il data binding di ADO
Il meccanismo di binding
Uso di controlli associati ai dati
Il controllo ADO Data
Formattazione dei dati
Il designer DataEnvironment
Oggetti Connection
Oggetti Command
Data binding con il designer DataEnvironment
vi
181
181
184
185
186
186
188
189
193
195
195
197
204
204
209
219
223
225
227
228
228
229
231
235
238
238
242
243
249
250
250
251
252
252
258
260
261
262
264
266
269
269
270
271
273
Sommario
9 ■ Form e finestre di dialogo avanzati
277
Utilizzo standard dei form
Form usati come oggetti
Creazione dinamica dei controlli
278
278
283
10 ■ Controlli standard di Windows Parte I
289
Il controllo ImageList
Aggiunta di immagini
Estrazione e disegno di immagini
Il controllo TreeView
Impostazione di proprietà in fase di progettazione
Operazioni della fase di esecuzione
Il controllo ListView
Impostazione di proprietà in fase di progettazione
Operazioni della fase di esecuzione
Il controllo Toolbar
Impostazione di proprietà in fase di progettazione
Operazioni della fase di esecuzione
Il controllo TabStrip
Impostazione di proprietà in fase di progettazione
Operazioni della fase di esecuzione
Il controllo StatusBar
Operazioni della fase di esecuzione
Il controllo ProgressBar
Impostazione di proprietà in fase di progettazione
Operazioni della fase di esecuzione
Il controllo Slider
Impostazione di proprietà in fase di progettazione
Operazioni della fase di esecuzione
Il controllo ImageCombo
Impostazione di proprietà in fase di progettazione
Operazioni della fase di esecuzione
11 ■ Controlli standard di Windows Parte II
Il controllo Animation
Il controllo UpDown
Impostazione di proprietà in fase di progettazione
Operazioni della fase di esecuzione
Il controllo FlatScrollBar
Il controllo MonthView
Impostazione di proprietà in fase di progettazione
Operazioni della fase di esecuzione
Il controllo DateTimePicker
Impostazione di proprietà in fase di progettazione
Operazioni della fase d’esecuzione
291
292
293
295
295
297
302
303
305
308
308
311
314
314
316
318
320
322
322
323
323
323
324
325
325
326
329
330
331
331
332
333
334
334
336
340
341
342
12 ■ Il modello di oggetti ADO
345
L’oggetto Connection
Proprietà
347
347
vii
Sommario
Metodi
Eventi
La collection Errors
L’oggetto Recordset
Proprietà
Metodi
Eventi
L’oggetto Field
Proprietà
Metodi
La collection Fields
L’oggetto Command
Proprietà
Metodi
L’oggetto Parameter
Proprietà
Metodi
La collection Parameters
L’oggetto Property
13 ■ ADO al lavoro
Impostazione di una connessione
Creazione della stringa di connessione
Apertura della connessione
Elaborazione di dati
Apertura di un oggetto Recordset
Operazioni base sui database
Aggiornamenti batch ottimistici del client
Uso degli oggetti Command
14 ■ Componenti ActiveX
Introduzione a COM
Breve storia di COM
Tipi di componenti COM
Creazione di un server ActiveX EXE
I passi fondamentali
La proprietà Instancing
Passaggio di dati tra applicazioni
Gestione degli errori
Componenti con interfacce utente
Problemi di compatibilità
Registrazione di un componente
Chiusura del server
Creazione di un server DLL ActiveX
Componenti in-process nell’IDE di Visual Basic
Differenze tra componenti in-process e out-of-process
viii
352
354
356
357
357
368
380
383
383
388
389
390
391
393
394
395
396
396
397
399
400
400
403
406
406
412
417
421
425
426
426
428
432
432
434
439
444
448
450
457
458
459
459
461