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