Top Banner

of 1144

[ DELPHI] [ ITA] Borland - Guida Alla Programmazione Di Delphi 7

Jul 15, 2015

Download

Documents

ununoctio
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Guida alla programmazione

Delphi 7

Borland

per Windows

Borland Software Corporation 100 Enterprise Way, Scotts Valley, CA 95066-3249 www.borland.com

Per una lista completa dei file che possibile distribuire in conformit allAccordo di Licenza e Garanzia Limitata di Delphi, fare riferimento al file DEPLOY.TXT situato nella directory principale di Delphi 7 . Borland Software Corporation potrebbe avere brevetti e/o applicazioni in corso di brevetto relativamente ad argomenti trattati in questo documento. Per un elenco dei brevetti in vigore, fare riferimento al CD del prodotto oppure alla finestra di dialogo About. La fornitura di questo documento non conferisce alcuna licenza relativamente a questi brevetti. COPYRIGHT 19832002 Borland Software Corporation. Tutti i diritti riservati. Tutti i marchi e i nomi dei prodotti Borland sono marchi o marchi registrati di Borland Software Corporation negli Stati Uniti e negli altri paesi. Tutti gli altri marchi citati sono di propriet dei rispettivi detentori. Stampato in Irlanda HDE1370WW21001 7E5R0802 0203040506-9 8 7 6 5 4 3 2 1 D3

Indice generaleCapitolo 1 Introduzione

1-1

Contenuto del manuale . . . . . . . . . . . . . . 1-1 Convenzioni adottate nel manuale. . . . . . . . 1-2 Servizi di assistenza agli sviluppatori . . . . . . 1-3

Parte I

Programmazione con DelphiCapitolo 2 Sviluppo di applicazioni con DelphiAmbiente di sviluppo integrato Progettazione di applicazioni. . Creazione di progetti . . . . . . Editing del codice . . . . . . . . Compilazione di applicazioni . Debug di applicazioni . . . . . . Distribuzione di applicazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2-12-1 2-2 2-3 2-4 2-4 2-5 2-5

Capitolo 3 Uso della libreria di componentiLa libreria di componenti . . . . . . . . . . Propriet, metodi ed eventi . . . . . . . Propriet . . . . . . . . . . . . . . . . Metodi . . . . . . . . . . . . . . . . . Eventi . . . . . . . . . . . . . . . . . Eventi utente . . . . . . . . . . . . . Eventi di sistema . . . . . . . . . . . Eventi interni . . . . . . . . . . . . . Oggetti, componenti e controlli . . . . . . Il ramo TObject . . . . . . . . . . . . . . Il ramo TPersistent . . . . . . . . . . . . Il ramo TComponent. . . . . . . . . . . Il ramo TControl . . . . . . . . . . . . . Il ramo TWinControl/TWidgetControl . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3-1. 3-1 . 3-3 . 3-3 . 3-4 . 3-4 . 3-4 . 3-4 . 3-5 . 3-5 . 3-6 . 3-7 . 3-8 . 3-9 . 3-10

Utilizzo di variabili oggetto . . . . . . . . . . . Creazione, istanziazione e distruzione di oggetti . . . . . . . . . . . . . . . . . . . . . Componenti e propriet . . . . . . . . . . . Definizione di nuove classi . . . . . . . . . . . Uso delle interfacce . . . . . . . . . . . . . . . . Utilizzo delle interfacce attraverso la gerarchia . . . . . . . . . . . . . . . . . . Uso delle interfacce con procedure . . . . . Implementazione di IInterface . . . . . . . . TInterfacedObject . . . . . . . . . . . . . . . Utilizzo delloperatore as con le interfacce . Riutilizzo del codice e meccanismi di delega . . . . . . . . . . . . . . . . . . . Utilizzo di implements per la delega . . Aggregazione. . . . . . . . . . . . . . . . Gestione della memoria di oggetti interfaccia. . . . . . . . . . . . . Uso del contatore dei riferimenti. . . . . Non utilizzo del contatore dei riferimenti . . . . . . . . . . . . . . Utilizzo delle interfacce in applicazioni distribuite. . . . . . . . . . . . . . . . . . .

. 4-7 . 4-8 . 4-9 . 4-9 4-12 4-13 4-14 4-14 4-15 4-16 4-16 4-17 4-18 4-18 4-19 4-20 4-20

Capitolo 5 Utilizzo di BaseCLX

5-1

Capitolo 4 Uso del modello ad oggettiCos un oggetto . . . . . . . . . . . . . . . . . Esame di un oggetto Delphi. . . . . . . . . Modifica del nome di un componente . . . Ereditare dati e codice da un oggetto . . . . . Ambito di visibilit e qualificatori . . . . . . . Dichiarazioni private, protected, public, e published . . . . . . . . . . . . . . . . . . . . . . .

4-14-1 4-2 4-4 4-5 4-5

. 4-6 iii

Uso di stream . . . . . . . . . . . . . . . . . . . . 5-2 Uso di stream per leggere o scrivere dati . . . 5-2 Metodi di stream per lettura e scrittura . . 5-2 Lettura e scrittura di componenti . . . . . 5-3 Lettura e scrittura di stringhe . . . . . . . 5-3 Copia di dati da uno stream a un altro . . . . 5-3 Specifica della posizione e della dimensione dello stream . . . . . . . . . . . . . . . . . . 5-4 Ricerca di una posizione specifica . . . . . 5-4 Utilizzo delle propriet Position e Size . . 5-4 Operazioni con i file . . . . . . . . . . . . . . . . 5-5 Approccio alle operazioni di I/O su file . . . 5-5 Uso degli stream di file . . . . . . . . . . . . . 5-6 Creazione e apertura di file con stream di file . . . . . . . . . . . . . . 5-6 Uso dellhandle di file . . . . . . . . . . . . 5-7 Manipolazione dei file . . . . . . . . . . . . . 5-8 Cancellazione di un file . . . . . . . . . . . 5-8 Ricerca di un file . . . . . . . . . . . . . . . 5-8 Cambiamento del nome di un file . . . . 5-10

Routine per data-ora . . . . . . . . . . . Copia di un file . . . . . . . . . . . . . . Operazioni con file ini e con il Registro di sistema . . . . . . . . . . . . . . Utilizzo di TIniFile e di TMemIniFile. . Utilizzo di TRegistryIniFile . . . . . . . Uso di TRegistry . . . . . . . . . . . . . Operazioni con le liste . . . . . . . . . . . . . . Operazioni comuni su elenchi . . . . . . . Aggiunta di elementi di un elenco . . . Cancellazione degli elementi di un elenco . . . . . . . . . . . . . . . Accesso agli elementi di un elenco . . . Riordinamento degli elementi di un elenco . . . . . . . . . . . . . . . Elenchi persistenti . . . . . . . . . . . . . . Operazioni con elenchi di stringhe. . . . . . . Caricamento e salvataggio di elenchi di stringhe . . . . . . . . . . . . Creazione di un nuovo elenco di stringhe . Elenchi di stringhe di breve termine . . Elenchi di stringhe di lungo termine . . Gestione di stringhe in un elenco. . . . . . Conteggio di stringhe in un elenco . . . Accesso ad una particolare stringa . . . Individuazione di elementi in un elenco di stringhe . . . . . . . . Analisi sequenziale di stringhe in un elenco . . . . . . . . . . . . . . . Aggiunta di una stringa a un elenco . . Spostamento di una stringa allinterno di un elenco . . . . . . . . . Cancellazione di una stringa da un elenco . . . . . . . . . . . . . . . Associazione di oggetti ad un elenco di stringhe. . . . . . . . . . . . . . . . . . Operazioni con stringhe. . . . . . . . . . . . . Routine per wide character . . . . . . . . . Routine comunemente utilizzate per long string . . . . . . . . . . . . . . . Routine comunemente utilizzate per stringhe terminate con null . . . . . . Dichiarazione ed inizializzazione di stringhe . . . . . . . . . . . . . . . . . . Combinazione e conversione di tipi di stringa . . . . . . . . . . . . . . . Conversioni di stringa a PChar . . . . . . . Dipendenze di stringhe . . . . . . . . .

. 5-10 . 5-10 . 5-11 . 5-11 . 5-13 . 5-13 . 5-14 . 5-14 . 5-14 . 5-15 . 5-15 . 5-16 . 5-16 . 5-16 . 5-17 . 5-17 . 5-18 . 5-18 . 5-19 . 5-20 . 5-20 . 5-20 . 5-20 . 5-20 . 5-21 . 5-21 . 5-22 . 5-22 . 5-22 . 5-23 . 5-26 . 5-27 . 5-28 . 5-29 . 5-29

Restituzione di una variabile locale PChar . . . . . . . . . . . . . . . Passaggio di una variabile locale come PChar . . . . . . . . . . . . Direttive al compilatore per le stringhe . . . Creazione di spazi di disegno . . . . . . . . . . Stampa . . . . . . . . . . . . . . . . . . . . . . . Conversione di misure . . . . . . . . . . . . . . Esecuzione di conversioni . . . . . . . . . . Esecuzione di conversioni semplici . . . Esecuzione di conversioni complesse . . Aggiunta di nuovi tipi di misura . . . . . . Creazione di una semplice famiglia di conversione e aggiunta delle unit . . . . Dichiarazione delle variabili . . . . . . . Registrazione della famiglia di conversione . . . . . . . . . . . . . . Registrazione delle unit di misura . . . Utilizzo delle nuove unit di misura . . Utilizzo di una funzione di conversione . . Dichiarazione delle variabili . . . . . . . Registrazione della famiglia di conversione . . . . . . . . . . . . . . Registrazione dellunit di misura di base . . . . . . . . . . . . . . . . . . . Scrittura dei metodi per la conversione in base allunit di misura di base . . . Registrazione delle altre unit di misura . . . . . . . . . . . . . . . . . Utilizzo delle nuove unit di misura . . Utilizzo di una classe per gestire le conversioni . . . . . . . . . . . . . . . . Creazione della classe di conversione . . Dichiarazione delle variabili . . . . . . . Registrazione della famiglia di conversione e delle altre unit . . . . Utilizzo delle nuove unit di misura . . Definizione di variant custom . . . . . . . . . . Memorizzazione dei dati di un tipo variant custom . . . . . . . . . . . . . . . . Creazione di una classe per attivare il tipo variant custom . . . . . . . . . . . . Abilitazione della conversione . . . . . . Implementazione di operazioni binarie . Implementazione di operazioni di confronto. . . . . . . . . . . . . . . . Implementazione di operazioni unarie . Copia e cancellazione di variant custom . .

5-29 5-30 5-31 5-31 5-32 5-33 5-33 5-34 5-34 5-34 5-35 5-35 5-35 5-36 5-36 5-36 5-36 5-37 5-37 5-37 5-37 5-38 5-38 5-38 5-39 5-40 5-41 5-41 5-42 5-43 5-43 5-44 5-46 5-48 5-48

iv

Caricamento e salvataggio dei valori dei variant custom . . . . . . . . . . Utilizzo del discendente TCustomVariantType . . . . . . . . . Scrittura di programmi di utilit per operare con un tipo variant custom Supporto di propriet e metodi nei variant custom . . . . . . . . . . . . Utilizzo di TInvokeableVariantType . Utilizzo di TPublishableVariantType .

. . 5-49 . . 5-50 . . 5-50 . . 5-52 . . 5-52 . . 5-53

Capitolo 6 Operazioni con componentiImpostazione delle propriet dei componenti . Impostazione delle propriet in progettazione. . . . . . . . . . . . . . . . Utilizzo di editor di propriet . . . . . . . Impostazione di propriet in esecuzione . . Chiamate a metodi. . . . . . . . . . . . . . . . . Operazioni con eventi e gestori di evento . . . . Generazione di nuovo gestore di evento. . . Generazione di un gestore per levento predefinito di un componente. . . . . . . . Individuazione dei gestori di evento. . . . . Associazione di un evento ad un gestore di evento esistente . . . . . . . . . . . . . . . . Utilizzo del parametro Sender . . . . . . Visualizzazione e codifica di eventi condivisi . . . . . . . . . . . . Associazione di eventi di menu a gestori di evento . . . . . . . . . . . . . . Cancellazione di gestori di evento . . . . . . Componenti multipiattaforma e non multipiattaforma . . . . . . . . . . . . . . . . . Aggiunta di componenti custom alla Component palette . . . . . . . . . . . . . .

6-16-2 6-2 6-3 6-3 6-3 6-3 6-4 6-4 6-4 6-5 6-5 6-6 6-6 6-7 6-7 6-9

Capitolo 7 Uso dei controlliImplementazione del drag-and-drop nei controlli . . . . . . . . . . . . . . . . . . Inizio di unoperazione di trascinamento Accettazione degli elementi rilasciati . . Rilascio di elementi . . . . . . . . . . . . Fine di unoperazione di trascinamento . Personalizzazione delle operazioni di trascinamento e di rilascio con un oggetto drag . . . . . . . . . . . . . . . . . . . . .

7-17-1 7-1 7-2 7-3 7-3

Modifica del puntatore di trascinamento del mouse. . . . . . . . . . . . . . . . . . . Implementazione delle operazione drag-and-dock nei controlli . . . . . . . . . . Trasformazione di un controllo con finestra in una posizione di aggancio. Come trasformare un controllo in un figlio agganciabile . . . . . . . . . . . . . . . . . Controllo delle modalit di aggancio dei controlli figlio . . . . . . . . . . . . . . . . Controllo della modalit di sgancio dei controlli figlio . . . . . . . . . . . . . . Controllo della modalit di risposta dei controlli figlio alle operazioni drag-and-dock . . . . . . . . . . . . . . . . Operazioni sul testo nei controlli . . . . . . . . Impostazione dellallineamento del testo. . Aggiunta di barre di scorrimento in fase di esecuzione . . . . . . . . . . . . . . . . . . Aggiunta delloggetto clipboard. . . . . . . Selezione del testo . . . . . . . . . . . . . . . Selezione di tutto il testo . . . . . . . . . . . Operazione taglia, copia e incolla del testo . Cancellazione del testo selezionato . . . . . Disattivazione delle voci di menu . . . . . . Preparazione di un menu a comparsa. . . . Gestione dellevento OnPopup . . . . . . . Aggiunta di grafici ai controlli . . . . . . . . . Come indicare che un controllo owner-drawn. . . . . . . . . . . . . . . . Aggiunta di oggetti grafici ad un elenco di stringhe . . . . . . . . . . . . . . . . . . Aggiunta di immagini ad unapplicazione. . . . . . . . . . . . Aggiunta di immagini a un elenco di stringhe . . . . . . . . . Disegno di elementi owner-drawn. . . . Dimensionamento degli elementi owner-draw . . . . . . . . . . . . . . . . . Disegno di elementi owner-draw . . . . . .

. 7-4 . 7-4 . 7-5 . 7-5 . 7-5 . 7-6

. 7-7 . 7-7 . 7-7 . 7-8 . 7-9 . 7-9 7-10 7-10 7-11 7-11 7-12 7-12 7-13 7-14 7-14 7-15 7-15 7-16 7-16 7-17

Capitolo 8 Creazione di applicazioni, componenti e librerieCreazione di applicazioni . . . . . Applicazioni GUI . . . . . . . . Modelli di interfaccia utente Applicazioni SDI . . . . . . . Applicazioni MDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8-1. 8-1 . 8-1 . 8-2 . 8-2 . 8-2

. . 7-3

v

Impostazioni delle opzioni per lIDE, il progetto e per il compilatore. . . . . . . 8-3 Modelli di programmazione . . . . . . . . . 8-3 Applicazioni per console . . . . . . . . . . . 8-4 Applicazioni di servizio . . . . . . . . . . . . 8-4 Thread dei servizi. . . . . . . . . . . . . . 8-7 Propriet del nome del servizio . . . . . . 8-8 Debug delle applicazioni di servizio . . . 8-9 Creazione di package e di DLL . . . . . . . . . . 8-10 Quando usare i package e le DLL . . . . . . 8-10 Scrittura di applicazioni database . . . . . . . . 8-11 Distribuzione di applicazioni database . . . 8-12 Creazione di applicazioni per Web server. . . . 8-12 Creazione di applicazioni con Web Broker . 8-13 Creazione di applicazioni WebSnap . . . . . 8-14 Creazione di applicazioni Web Services . . . 8-14 Scrittura di applicazioni con COM. . . . . . . . 8-15 Utilizzo di COM e DCOM . . . . . . . . . . . 8-15 Utilizzo di MTS e COM+ . . . . . . . . . . . 8-15 Utilizzo dei moduli dati . . . . . . . . . . . . . . 8-16 Creazione e modifica di moduli dati standard . . . . . . . . . . . . . . . . . . . . 8-17 Attribuzione del nome a un modulo dati e al relativo file unit . . . . . . . . . 8-17 Posizionamento e assegnazione del nome ai componenti . . . . . . . . . 8-18 Utilizzo delle propriet e degli eventi dei componenti di un modulo dati . . . 8-19 Creazione di regole di gestione in un modulo dati . . . . . . . . . . . . . 8-19 Accesso a un modulo dati da una scheda . . 8-20 Aggiunta di un modulo dati remoto a un progetto di application server . . . . . . . . 8-20 Utilizzo dellObject Repository . . . . . . . . . . 8-21 Condivisione di elementi allinterno di un progetto . . . . . . . . . . . . . . . . . 8-21 Aggiunta di elementi allObject Repository . 8-21 Condivisione di oggetti in un team di lavoro . . . . . . . . . . . . . . . . . . . . 8-21 Utilizzo di un elemento dellObject Repository in un progetto . . . 8-22 Copia di un elemento. . . . . . . . . . . . 8-22 Ereditare un elemento . . . . . . . . . . . 8-22 Utilizzo di un elemento . . . . . . . . . . 8-22 Utilizzo di modelli di progetto . . . . . . . . 8-23 Modifica di elementi condivisi . . . . . . . . 8-23 Specifica di un progetto predefinito, di una nuova scheda e della scheda principale . . . . . . . . . . . . . . . . . . . 8-23

Attivazione dellHelp nelle applicazioni . . . . Interfacce per il sistema di Help . . . . . . . Implementazione di ICustomHelpViewer . Comunicazione con Help Manager . . . . . Richiesta di informazioni allHelp Manager Visualizzazione di Help in base a parole chiave . . . . . . . . . . . . . . . . Visualizzazione degli indici . . . . . . . . . Implementazione IExtendedHelpViewer . . Implementazione IHelpSelector . . . . . . . Registrazione di oggetti di sistema di Help Registrazione dei visualizzatori di Help Registrazione dei selettori di Help . . . . Utilizzo dellHelp in unapplicazione VCL . . In che modo TApplication elabora lHelp VCL . . . . . . . . . . . . . In che modo i controlli VCL elaborano lHelp . . . . . . . . . . . . . . . Utilizzo dellHelp in unapplicazione CLX. . . In che modo TApplication elabora lHelp CLX . . . . . . . . . . . . . In che modo i controlli CLX elaborano lHelp . . . . . . . . . . . . . . . Chiamata diretta a un sistema di Help . . . . . Utilizzo di IHelpSystem . . . . . . . . . . . . . Personalizzazione del sistema di Help dellIDE. . . . . . . . . . . . . . . . . . . . . .

8-24 8-24 8-25 8-25 8-26 8-27 8-28 8-28 8-29 8-30 8-30 8-30 8-30 8-31 8-31 8-31 8-32 8-32 8-32 8-33 8-33

Capitolo 9 Sviluppo dellinterfaccia utente dellapplicazioneControllo del comportamento dellapplicazione . . . . . . . . . . . . . . . Il lavoro a livello di applicazione . . . . . Gestione dello schermo . . . . . . . . . . . Impostazione delle schede . . . . . . . . . . . Uso della scheda principale . . . . . . . . Occultamento della scheda principale . . Aggiunta di schede . . . . . . . . . . . . . Collegamento delle schede . . . . . . . Evitare riferimenti circolari di unit. . . Gestione del layout . . . . . . . . . . . . . Uso delle schede . . . . . . . . . . . . . . . . Controllo delle schede in memoria . . . . Visualizzazione di una scheda creata automaticamente . . . . . . . . . . . . Creazione dinamica delle schede . . . Creazione di schede non modali come finestre . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9-1. 9-1 . 9-2 . 9-2 . 9-2 . 9-3 . 9-3 . 9-3 . 9-4 . 9-4 . 9-4 . 9-5 . 9-6

. . 9-6 . . 9-6 . . 9-8

vi

Creazione di unistanza di scheda mediante una variabile locale . . . . . . 9-8 Passaggio di altri argomenti alle schede . . . 9-8 Recupero dei dati dalle schede . . . . . . . . 9-9 Recupero dei dati da schede non modali. . . . . . . . . . . . . . . . . 9-9 Recupero dei dati da schede modali . . . 9-11 Riutilizzo di componenti e gruppi di componenti . . . . . . . . . . . . . . 9-13 Creazione e utilizzo di modelli di componenti . 9-13 Operazioni con i frame . . . . . . . . . . . . . . 9-14 Creazione di frame . . . . . . . . . . . . . . . 9-14 Aggiunta di frame alla Component palette . 9-15 Uso e modifica di frame . . . . . . . . . . . . 9-15 Condivisione di frame . . . . . . . . . . . . . 9-16 Sviluppo di finestre di dialogo . . . . . . . . . . 9-17 Utilizzo delle finestre di dialogo di tipo Open . . . . . . . . . . . . . . . . . . 9-17 Organizzazione delle azioni per barre e menu . 9-18 Che cosa un azione . . . . . . . . . . . . . 9-19 Configurazione delle bande di azione . . . . 9-20 Creazione di barre di strumenti e menu . . . 9-21 Aggiunta di colori, motivi o immagini a menu, pulsanti e barre di strumenti. . . 9-22 Aggiunta di icone a menu e barre di strumenti. . . . . . . . . . . . . . . . . . 9-23 Selezione degli stili per i menu e le barre strumenti . . . . . . . . . . . . 9-23 Creazione di menu dinamici. . . . . . . . 9-24 Creazione di barre di strumenti e menu personalizzabili dagli utenti . . . . . . . 9-25 Occultamento di elementi e categorie inutilizzate nelle bande di azioni . . . . 9-25 Creazione degli elenchi di dati recenti (MRU) . . . . . . . . . . . 9-26 Uso delle liste di azioni . . . . . . . . . . . . . . 9-27 Configurazione delle liste di azioni . . . . . 9-27 Cosa accade quando si scatena unazione . . 9-28 Risposta con eventi . . . . . . . . . . . . . 9-28 Come le azioni trovano le proprie destinazioni . . . . . . . . . . . . . . . . 9-30 Aggiornamento delle azioni. . . . . . . . . . 9-30 Classi di azione predefinite . . . . . . . . . . 9-30 Scrittura di componenti azione . . . . . . . . 9-32 Registrazione delle azioni . . . . . . . . . . . 9-33 Creazione e gestione dei menu . . . . . . . . . . 9-33 Apertura di Menu Designer. . . . . . . . . . 9-34 Costruzione di menu. . . . . . . . . . . . . . 9-35 Assegnazione dei nomi dei menu. . . . . 9-35

Assegnazione dei nomi delle voci di menu . . . . . . . . . . . . . . . . . . Aggiunta, inserimento e cancellazione delle voci di menu . . . . . . . . . . . . Aggiunta di barre separatrici . . . . . . . Specifica dei tasti di scelta rapida e delle scorciatoie di tastiera . . . . . . Creazione di sottomenu . . . . . . . . . . . Creazione di sottomenu per retrocessione dei menu esistenti . . Spostamento delle voci di menu . . . . . Aggiunta di immagini alle voci di menu Visualizzazione del menu. . . . . . . . . Editing delle voci di menu nellObject Inspector . . . . . . . . . . . . Uso del menu contestuale Menu Designer . I comandi del menu contestuale . . . . . Passaggio da un menu allaltro in fase di progettazione . . . . . . . . . Uso dei modelli di menu . . . . . . . . . . . Salvataggio di un menu come modello . . . Convenzioni per lassegnazione dei nomi delle voci di menu e dei gestori di evento di un modello . . Manipolazione delle voci di menu in fase di esecuzione. . . . . . . . . . . . . Fusione dei menu . . . . . . . . . . . . . . . Specifica del menu attivo: propriet Menu. . . . . . . . . . . . . . Determinazione dellordine delle voci di menu fuse: propriet GroupIndex . Importazione dei file risorsa . . . . . . . . . Progettazione di barre strumenti e di coolbar . Aggiunta di una barra strumenti usando un componente panel . . . . . . . Aggiunta di un pulsante di scelta rapida a un pannello. . . . . . . . . . . Assegnazione del glifo a un pulsante di scelta rapida . . . . . . . . . . . . . . Impostazione della condizione iniziale di un pulsante di scelta rapida . . . . . Creazione di un gruppo di pulsanti di scelta rapida . . . . . . . . . . . . . . Come consentire la commutazione dei pulsanti . . . . . . . . . . . . . . . . . . Aggiunta di una barra strumenti usando il relativo componente . . . . . . . Aggiunta di un pulsante strumento . . .

9-35 9-36 9-37 9-38 9-38 9-39 9-39 9-40 9-40 9-41 9-41 9-42 9-42 9-43 9-44

9-45 9-45 9-45 9-46 9-46 9-46 9-47 9-48 9-49 9-49 9-49 9-50 9-50 9-50 9-51

vii

Assegnazione di immagini ai pulsanti strumento . . . . . . . . . . . . . . . . Impostazione dellaspetto di un pulsante strumento e delle condizioni iniziali . . . . . . . . . . . . . . . . . . Creazione di gruppi di pulsanti strumento . . . . . . . . . . . . . . . . Come consentire pulsanti strumento commutati . . . . . . . . . . . . . . . . Aggiunta di un componente coolbar . . . . Impostazione dellaspetto della coolbar Risposta ai clic . . . . . . . . . . . . . . . . Assegnazione di un menu a un pulsante strumento . . . . . . . . Aggiunta di barre strumenti nascoste . . . Come nascondere e mostrare le barre strumenti . . . . . . . . . . . . . . Programmi dimostrativi . . . . . . . . . . . Controlli comuni e temi di XP . . . . . . . . .

. 9-51

. 9-51 . 9-52 . 9-52 . 9-53 . 9-53 . 9-54 . 9-54 . 9-54 . 9-54 . 9-55 . 9-55

Capitolo 10 Tipi di controlliControlli di testo . . . . . . . . . . . . . . . . Controlli di editing . . . . . . . . . . . . . Propriet dei controlli di editing . . . . . Controlli memo e rich edit . . . . . . . Controlli per la visualizzazione del testo Etichette . . . . . . . . . . . . . . . . . . . Controlli specializzati per linput . . . . . . Barre di scorrimento . . . . . . . . . . . . Barre di regolazione . . . . . . . . . . . . Controlli up-down . . . . . . . . . . . . . Controlli spin edit (solo CLX) . . . . . . . Controlli Hot key (solo VCL) . . . . . . . Controlli splitter . . . . . . . . . . . . . . Pulsanti e controlli simili . . . . . . . . . . . Controlli pulsante . . . . . . . . . . . . . Pulsanti bitmap . . . . . . . . . . . . . . . Pulsanti di scelta rapida . . . . . . . . . . Caselle di controllo . . . . . . . . . . . . . Pulsanti di opzione. . . . . . . . . . . . . Barre strumenti . . . . . . . . . . . . . . . Cool bar (solo VCL) . . . . . . . . . . . . Controlli elenco . . . . . . . . . . . . . . . . Caselle di riepilogo e caselle di riepilogo con spunta . . . . . . . . . Caselle combinate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10-1. 10-1 . 10-2 . 10-3 . 10-3 . 10-4 . 10-5 . 10-6 . 10-6 . 10-6 . 10-7 . 10-7 . 10-7 . 10-8 . 10-8 . 10-9 . 10-9 . 10-9 10-10 10-10 10-11 10-11 10-12

Viste ad albero . . . . . . . . . . . . . . Viste ad elenco . . . . . . . . . . . . . . Viste di Icone (solo CLX) . . . . . . . . Selettore data-ora e calendari mensili . Controlli di raggruppamento . . . . . . . Caselle di gruppo e gruppi di pulsanti di opzione . . . . . . . . . Pannelli . . . . . . . . . . . . . . . . . . Caselle a scorrimento . . . . . . . . . . Controlli separatore . . . . . . . . . . . Controlli pagina . . . . . . . . . . . . . Controlli intestazione . . . . . . . . . . Controlli di visualizzazione . . . . . . . . Barre di stato . . . . . . . . . . . . . . . Barre di avanzamento. . . . . . . . . . Propriet Help e Hint . . . . . . . . . . Griglie . . . . . . . . . . . . . . . . . . . . Griglie grafiche . . . . . . . . . . . . . Griglie per stringhe . . . . . . . . . . . Editor di liste di valori (solo VCL) . . . . Controlli grafici . . . . . . . . . . . . . . . Immagini . . . . . . . . . . . . . . . . . Forme . . . . . . . . . . . . . . . . . . . Linee smussate. . . . . . . . . . . . . . Caselle di disegno . . . . . . . . . . . . Controlli Animation (solo VCL) . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

10-14 10-14 10-15 10-15 10-15 10-15 10-16 10-16 10-17 10-17 10-17 10-17 10-18 10-18 10-19 10-19 10-19 10-20 10-20 10-21 10-21 10-21 10-21 10-22 10-22

Capitolo 11 Progettazione di classi e componenti con ModelMaker 11-1Nozioni di base su ModelMaker . . . Modelli di ModelMaker . . . . . . Utilizzo di ModelMaker con lIDE. Creazione di modelli . . . . . . . . Utilizzo delle viste di ModelMaker . . Pannello Collections . . . . . . . . Vista Classes . . . . . . . . . . . Vista Units . . . . . . . . . . . . Vista Diagrams . . . . . . . . . . Pannello Members. . . . . . . . . . Pannello Editors . . . . . . . . . . . Implementation Editor . . . . . Unit Code Editor. . . . . . . . . Diagram Editor. . . . . . . . . . Altri Editor . . . . . . . . . . . . Per ulteriori informazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2 . 11-2 . 11-2 . 11-3 . 11-3 . 11-4 . 11-5 . 11-5 . 11-6 . 11-7 . 11-7 . 11-7 . 11-8 . 11-9 . 11-9 .11-10

. 10-12 . 10-13

viii

Capitolo 12 Operazioni con elementi grafici e multimediali

12-1

Panoramica sulla programmazione dei grafici . 12-1 Aggiornamento dello schermo . . . . . . . . 12-2 Tipi di oggetti grafici . . . . . . . . . . . . . . 12-3 Propriet e metodi comuni delloggetto Canvas . . . . . . . . . . . . . 12-4 Uso delle propriet delloggetto Canvas. . . 12-5 Uso delle penne . . . . . . . . . . . . . . . 12-6 Uso dei pennelli. . . . . . . . . . . . . . . 12-8 Lettura e impostazione dei pixel . . . . 12-10 Uso dei metodi Canvas per disegnare oggetti grafici . . . . . . . . . . . . . . . . 12-10 Disegno di linee e spezzate . . . . . . . 12-10 Disegno di figure . . . . . . . . . . . . . 12-11 Gestione di pi oggetti di disegno in unapplicazione . . . . . . . . . . . . . . . 12-12 Come tenere la traccia dello strumento di disegno da usare . . . . . . . . . . . 12-12 Modifica degli strumenti di disegno . . 12-14 Uso dello strumento con i pulsanti rapidi . . . . . . . . . . 12-14 Disegno su un grafico . . . . . . . . . . . . 12-17 Come rendere scorrevoli i grafici . . . . 12-17 Aggiunta di un controllo immagine . . 12-17 Caricamento e salvataggio dei file grafici . 12-19 Caricamento di unimmagine da un file 12-20 Salvataggio di unimmagine in un file . 12-20 Sostituzione dellimmagine . . . . . . . 12-21 Uso della clipboard con i grafici . . . . . . 12-22 Operazioni di copia dei grafici nella clipboard . . . . . . . . . . . . . . . . . 12-22 Operazioni di taglio di grafici nella clipboard. . . . . . . . . . . . . . 12-23 Operazioni di incollaggio di grafici della clipboard. . . . . . . . . . . . . . 12-23 Esempio di effetto elastico. . . . . . . . . . 12-24 Risposta al mouse. . . . . . . . . . . . . 12-24 Risposta ad unazione mouse-down . . 12-26 Aggiunta di un campo a un oggetto scheda per tracciare le azioni del mouse . . . . . . . . . . . . 12-27 Affinamento del disegno delle linee . . 12-28 Uso di componenti multimediali. . . . . . . . 12-30 Aggiunta di video clip senza suono ad unapplicazione . . . . . . . . . . . . . . . 12-30 Esempio di aggiunta di clip video senza sonoro . . . . . . . . . . . . . . . 12-31

Aggiunta di clip audio e/o video a unapplicazione . . . . . . . . . . . . . . 12-32 Esempio di aggiunta di clip audio e/o video (solo VCL). . . . . . 12-34

Capitolo 13 Scrittura di applicazioni multi-thread 13-1Definizione di oggetti thread . . . . . . . . . . 13-1 Inizializzazione del thread . . . . . . . . . . 13-3 Assegnazione di una priorit predefinita . . . . . . . . . . . . . . . . 13-3 Come indicare quando i thread vengono rilasciati . . . . . . . . . . . . 13-4 Scrittura della funzione thread. . . . . . . . 13-4 Utilizzo del thread VCL/CLX principale 13-4 Uso delle variabili locali al thread . . . . 13-5 Controllo del termine da parte di altri thread . . . . . . . . . . . . . . . 13-6 Gestione delle eccezioni nella funzione di thread . . . . . . . . . 13-6 Scrittura del codice di pulizia . . . . . . . . 13-7 Coordinamento dei thread . . . . . . . . . . . . 13-7 Come evitare laccesso simultaneo . . . . . 13-7 Blocco di oggetti . . . . . . . . . . . . . . 13-8 Uso di sezioni critiche . . . . . . . . . . . 13-8 Uso di un sincronizzatore multilettura a scrittura esclusiva . . . . . . . . . . . 13-8 Altre tecniche per la condivisione della memoria. . . . . . . . . . . . . . . . . . 13-9 Attesa di altri thread . . . . . . . . . . . . . 13-9 Attesa che un thread termini lesecuzione . . . . . . . . . . . . . . . 13-10 Attesa che venga completata unoperazione . . . . . . . . . . . . . 13-10 Esecuzione di oggetti thread. . . . . . . . . . .13-11 Ridefinizione della priorit predefinita . . 13-12 Avvio e interruzione dei thread . . . . . . 13-12 Debug delle applicazioni multi-thread . . . . 13-13 Assegnazione di un nome al thread . . . . 13-13 Conversione di un thread senza nome in uno con nome . . . . . 13-13 Assegnazione di nomi differenti a thread simili . . . . . . . . . . . . . 13-15

Capitolo 14 Gestione delle eccezioni

14-1

Definizione dei blocchi protetti . . . . . . . . . 14-2 Scrittura del blocco try . . . . . . . . . . . . 14-2 Sollevare uneccezione . . . . . . . . . . 14-3

ix

Scrittura dei gestori di eccezione . . . . . . . 14-4 Istruzioni del gestore delle eccezioni . . . 14-4 Gestione delle classi di eccezioni . . . . . 14-6 Campo dazione dei gestori di eccezioni . 14-6 Risollevare le eccezioni. . . . . . . . . . . 14-7 Scrittura dei blocchi finally . . . . . . . . . . 14-8 Scrittura di un blocco finally. . . . . . . . 14-9 Gestione delle eccezioni in applicazioni VCL. . 14-9 Classi di eccezione VCL . . . . . . . . . . . 14-10 Gestione predefinita di eccezioni in VCL . 14-11 Eccezioni silenziose . . . . . . . . . . . . . 14-12 Definizione delle eccezioni VCL . . . . . . 14-13

Differenze a livello di interfaccia utente . Porting di applicazioni database in Linux Aggiornamento dei dati in applicazioni dbExpress. . . . . . . . . . . . . . . . . . Applicazioni Internet multipiattaforma . . . Porting di applicazioni Internet in Linux .

15-25 15-26 15-28 15-30 15-30

Capitolo 16 Uso di package e di componenti

16-1

Capitolo 15 Utilizzo di CLX per lo sviluppo multipiattaforma

15-1

Creazione di applicazioni CLX . . . . . . . . . . 15-2 Porting di applicazioni VCL . . . . . . . . . . . 15-2 Tecniche di porting . . . . . . . . . . . . . . . 15-2 Porting specifico per una piattaforma . . 15-3 Porting per pi piattaforme . . . . . . . . 15-3 Porting in emulazione Windows . . . . . 15-3 Modifica di applicazioni VCL. . . . . . . . . 15-4 WinCLX e VisualCLX . . . . . . . . . . . . . 15-5 Differenze nella VisualCLX . . . . . . . . 15-6 Funzionalit mancanti o di cui non possibile eseguire il porting diretto . 15-7 Confronto fra le unit WinCLX e VisualCLX . 15-8 Differenze nei costruttori di oggetti CLX . 15-12 Gestione degli eventi di sistema e di widget. . . . . . . . . . . . . . . . . . 15-13 Scrittura di codice portabile . . . . . . . . . 15-13 Utilizzo di direttive condizionali . . . . 15-14 Terminazione delle direttive condizionali . . . . . . . . . . . . . . . 15-15 Inclusione di codice assembler in linea. 15-16 Differenze di programmazione in Linux. . 15-17 Trasferimento di applicazioni fra Windows e Linux. . . . . . . . . . . . . . 15-18 Condivisione di file sorgente tra Windows e Linux . . . . . . . . . . . . 15-19 Differenze di ambiente fra Windows e Linux . . . . . . . . . . . . 15-19 Registry . . . . . . . . . . . . . . . . . . 15-21 Look and feel . . . . . . . . . . . . . . . 15-22 Struttura delle directory in Linux. . . . . . 15-22 Applicazioni database multipiattaforma . . . 15-23 Differenze in dbExpress . . . . . . . . . . . 15-24 Differenze a livello di componenti . . . . . 15-25

Perch usare i package? . . . . . . . . . . . . . 16-2 Package e DLL standard . . . . . . . . . . . 16-2 Package di esecuzione . . . . . . . . . . . . . . 16-3 Caricamento dei package in unapplicazione . . . . . . . . . . . . . . 16-3 Caricamento dei package tramite la funzione LoadPackage . . . . 16-4 Scelta di quali package di esecuzione usare 16-4 Package custom . . . . . . . . . . . . . . . . 16-5 Package di progettazione . . . . . . . . . . . . 16-5 Installazione di package di componenti . . 16-6 Creazione ed editing dei package . . . . . . . . 16-7 Creazione di un package . . . . . . . . . . . 16-7 Editing di un package esistente . . . . . . . 16-8 Struttura dei package . . . . . . . . . . . . . 16-8 Assegnazione del nome ai package . . . 16-8 La clausola Requires . . . . . . . . . . . . 16-9 La clausola Contains. . . . . . . . . . . . 16-9 Editing manuale dei file sorgente dei package. . . . . . . . . . . . . . . . . 16-10 Compilazione di package. . . . . . . . . . .16-11 Direttive al compilatore specifiche per il packaging . . . . . . . . . . . . .16-11 Compilazione e link dalla riga comandi 16-13 File package creati durante la compilazione. . . . . . . . . . . . . 16-13 Distribuzione dei package . . . . . . . . . . . 16-14 Distribuzione di applicazioni che usano package. . . . . . . . . . . . . 16-14 Distribuzione di package ad altri sviluppatori . . . . . . . . . . . . 16-14 File di raccolta di package . . . . . . . . . 16-14

Capitolo 17 Creazione di applicazioni internazionaliInternazionalizzazione e localizzazione . Linternazionalizzazione . . . . . . . . Localizzazione . . . . . . . . . . . . . . Internazionalizzazione delle applicazioni . . . . . . . .

17-1. . . . 17-1 17-1 17-2 17-2

x

Abilitazione del codice dellapplicazione . . 17-2 Set di caratteri . . . . . . . . . . . . . . . . 17-2 Set di caratteri OEM e ANSI . . . . . . . . 17-3 Set di caratteri multibyte . . . . . . . . . . 17-3 Caratteri estesi . . . . . . . . . . . . . . . 17-4 Inclusione di funzionalit bidirezionali nelle applicazioni . . . . . . . . . . . . . 17-4 Propriet BiDiMode . . . . . . . . . . . . 17-4 Funzioni specifiche della localit . . . . . 17-7 Progettazione di uninterfaccia utente . . . . 17-7 Testo . . . . . . . . . . . . . . . . . . . . . 17-7 Immagini. . . . . . . . . . . . . . . . . . . 17-8 Formati e ordinamento . . . . . . . . . . . 17-8 Configurazione della tastiera . . . . . . . 17-8 Isolamento delle risorse . . . . . . . . . . . . 17-8 Creazione di DLL di risorse . . . . . . . . . . 17-9 Uso delle DLL di risorse . . . . . . . . . . . 17-10 Sostituzione dinamica delle DLL di risorse 17-11 Localizzazione delle applicazioni . . . . . . . 17-12 Localizzazione delle risorse . . . . . . . . . 17-12

Considerazioni sul ridimensionamento non dinamico . . . . . . . . . . . . . . 18-12 Considerazioni sul ridimensionamento dinamico di schede e controlli . . . . 18-13 Regolazione in funzione del numero di colori disponibili . . . . . . . . . . 18-14 Font . . . . . . . . . . . . . . . . . . . . . . 18-14 Versioni del sistema operativo . . . . . . . 18-15 Requisiti per la licenza duso del software . . 18-15 DEPLOY . . . . . . . . . . . . . . . . . . . 18-15 README . . . . . . . . . . . . . . . . . . . 18-16 Accordo di licenza. . . . . . . . . . . . . . 18-16 Documentazione sui prodotti di terze parti18-16

Parte II

Sviluppo di applicazioni databaseCapitolo 19 Progettazione di applicazioni databaseUso dei database . . . . . . . . . . . . . . . Tipi di database . . . . . . . . . . . . . . Sicurezza del database . . . . . . . . . . Transazioni . . . . . . . . . . . . . . . . . Integrit referenziale, procedure memorizzate e trigger. . . . . . . . . . Architettura di un database . . . . . . . . . Struttura generale . . . . . . . . . . . . . La scheda dellinterfaccia utente . . . Il modulo dati . . . . . . . . . . . . . Connessione diretta a un server di database . . . . . . . . . . . . . . . . Utilizzo di un file dedicato su disco . . . Collegamento a un altro dataset . . . . . Connessione di un dataset client a un altro dataset nella stessa applicazione . . . . . . . . . . . . . Utilizzo di unarchitettura multi-tier Combinazione dei vari approcci . . . . . Progettazione dellinterfaccia utente . . . . Analisi dei dati. . . . . . . . . . . . . . . Scrittura di report . . . . . . . . . . . . . . . . . . . . . .

Capitolo 18 Distribuzione di applicazioni

19-1. . . . . . . . . 19-1 19-3 19-4 19-5 19-5 19-6 19-6 19-6 19-7

18-1

Distribuzione di applicazioni generiche. . . . . 18-1 Uso di programmi di installazione . . . . . . 18-2 Identificazione dei file dellapplicazione . 18-2 File di applicazione . . . . . . . . . . . . . 18-3 File package . . . . . . . . . . . . . . . . . 18-3 Moduli di fusione . . . . . . . . . . . . . . 18-3 Controlli ActiveX . . . . . . . . . . . . . . 18-5 Applicazioni di ausilio . . . . . . . . . . . 18-5 Ubicazione delle DLL . . . . . . . . . . . 18-6 Distribuzione di applicazioni CLX . . . . . . . . 18-6 Distribuzione di applicazioni database . . . . . 18-6 Distribuzione di applicazioni database dbExpress . . . . . . . . . . . . . . . . . . . 18-7 Distribuzione di applicazioni BDE . . . . . . 18-8 Borland Database Engine . . . . . . . . . 18-9 Distribuzione di applicazioni database multi-tier (DataSnap) . . . . . . . 18-9 Distribuzione di applicazioni Web . . . . . . . . 18-9 Distribuzione su server Apache . . . . . . 18-10 Abilitazione dei moduli . . . . . . . . . 18-10 Applicazioni CGI . . . . . . . . . . . . . 18-11 Programmazione per ambienti di destinazione diversi. . . . . . . . . . . . . 18-12 Risoluzione dello schermo e numero di colori . . . . . . . . . . . . . 18-12

. . 19-8 . 19-10 . .19-11

. . . . . .

19-12 19-13 19-15 19-16 19-16 19-17

Capitolo 20 Utilizzo dei controlli dati

20-1

Uso delle funzioni comuni ai controlli dati . . 20-2 Associazione di un controllo dati a un dataset. . . . . . . . . . . . . . . . . . 20-3

xi

Modifica del dataset associato in esecuzione . . . . . . . . . Attivazione e disattivazione del datasource . . . . . . . . . . . . . . Risposta alle modifiche mediate dal datasource . . . . . . . . . . . . . . . . Modifica e aggiornamento dei dati . . . . . Attivazione dellediting nei controlli in fase di esecuzione . . . . . . . . . . Modifica dei dati in un controllo . . . . Disabilitazione e abilitazione della visualizzazione dei dati . . . . . . . . . . Aggiornamento della visualizzazione dei dati . . . . . . . . . . . . . . . . . . . . Abilitazione degli eventi mouse, tastiera e timer . . . . . . . . . . . . . . . Scelta del modo in cui organizzare i dati . . . Visualizzazione di un singolo record. . . . Visualizzazione dei dati come etichette Visualizzazione e modifica di campi in una casella di testo . . . . . . . . . . Visualizzazione e modifica del testo in un controllo memo . . . . . . . . . . Visualizzazione e modifica del testo in un controllo rich edit . . . . . . . . Visualizzazione e modifica di campi grafici in un controllo immagine . . . Visualizzazione e modifica di dati in caselle combinate e di riepilogo . . Gestione dei valori di campo booleani con le caselle di controllo. . . . . . . . Restrizione dei valori del campo con controlli di opzione . . . . . . . . Visualizzazione di pi record . . . . . . . . Visualizzazione e modifica dei dati con TDBGrid . . . . . . . . . . . . . . . . . . Uso di un controllo griglia nel suo stato predefinito. . . . . . . . . . . . . . . . . . Creazione di una griglia personalizzata . . Caratteristiche delle colonne persistenti . . . . . . . . . . . . . . . . Creazione di colonne persistenti . . . . Cancellazione di colonne persistenti . . Sistemazione dellordine delle colonne persistenti . . . . . . . . . . . . . . . . Impostazione delle propriet di una colonna in progettazione . . . . Definizione di una colonna elenco di consultazione . . . . . . . . . . . . . .

. 20-4 . 20-4 . 20-4 . 20-5 . 20-5 . 20-5 . 20-6 . 20-7 . 20-7 . 20-8 . 20-8 . 20-8 . 20-9 . 20-9 20-10 20-10 20-11 20-14 20-15 20-16 20-17 20-17 20-18 20-19 20-20 20-21 20-21 20-22 20-23

Inserimento di un pulsante in una colonna . . . . . . . . . . . . . Ripristino dei valori predefiniti in una colonna . . . . . . . . . . . . . . . . . Visualizzazione dei campi ADT e array . Impostazione delle opzioni per la griglia . Editing nella griglia . . . . . . . . . . . . . Controllo del disegno della griglia . . . . Risposta alle azioni dellutente in esecuzione . . . . . . . . . . . . . . . . Creazione di una griglia contenente altri controlli associati ai dati . . . . . . . . Spostamento e gestione dei record . . . . . . Scelta dei pulsanti del navigatore da visualizzare. . . . . . . . . . . . . . . . . Come nascondere e mostrare i pulsanti del navigatore in esecuzione . . . . . Visualizzazione del fumetto guida . . . . Uso di un singolo navigatore per pi dataset . . . . . . . . . . . . . . .

20-23 20-24 20-24 20-27 20-28 20-29 20-29 20-30 20-31 20-32 20-33 20-33 20-34

Capitolo 21 Creazione di report con Rave ReportsPanoramica . . . . . . . . . . . . . . Primi passi . . . . . . . . . . . . . . . Rave Visual Designer . . . . . . . . . Panoramica sui componenti . . . . . Componenti VCL/CLX. . . . . . Componenti Engine . . . . . . Componenti Render . . . . . . Componenti Data connection Componenti Rave project . . . Componenti per i report . . . . . Componenti di progetto. . . . Data objects. . . . . . . . . . . Componenti Standard . . . . . Componenti Drawing . . . . . Componenti Report . . . . . . Componenti Bar code . . . . . Per maggiori informazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21-1. . . . . . . . . . . . . . . . . 21-1 21-2 21-3 21-4 21-4 21-4 21-4 21-4 21-5 21-5 21-5 21-5 21-5 21-5 21-6 21-6 21-6

Capitolo 22 Uso dei componenti di supporto decisionale

22-1

Panoramica . . . . . . . . . . . . . . . . . . . . 22-1 I crosstab . . . . . . . . . . . . . . . . . . . . . . 22-2 Crosstab monodimensionali . . . . . . . . . 22-3

xii

Crosstab multidimensionali . . . . . . . . . . 22-3 Regole generali per luso dei componenti di supporto decisionale . . . . . . . . . . . . . 22-3 Uso dei dataset con i componenti di supporto decisionale . . . . . . . . . . . . . . . . . . . . 22-5 Creazione di dataset decisionali con TQuery o TTable . . . . . . . . . . . . . 22-5 Creazione di dataset decisionali con leditor Decision Query . . . . . . . . . 22-6 Uso dei cubi decisionali . . . . . . . . . . . . . . 22-7 Propriet del cubo decisionale e eventi . . . 22-7 Uso di Decision Cube editor . . . . . . . . . 22-8 Visualizzazione e modifica delle impostazioni delle dimensioni . . . . . 22-8 Impostazione del numero massimo di dimensioni e di riepiloghi disponibili . 22-9 Visualizzazione e modifica delle opzioni di progetto . . . . . . . . . 22-9 Uso delle sorgenti decisionali. . . . . . . . . . . 22-9 Propriet ed eventi . . . . . . . . . . . . . . . 22-9 Uso dei pivot decisionali . . . . . . . . . . . . 22-10 Propriet dei pivot decisionali . . . . . . . 22-10 Creazione e uso delle griglie decisionali . . . 22-11 Creazione di griglie decisionali . . . . . . . 22-11 Uso delle griglie decisionali . . . . . . . . . 22-11 Apertura e chiusura dei campi della griglia decisionale . . . . . . . . 22-12 Riorganizzazione di righe e colonne in griglie decisionali . . . . . . . . . . 22-12 Espansione dei dettagli nelle griglie decisionali . . . . . . . . . . . . . . . . 22-12 Limitazione della selezione delle dimensioni in griglie decisionali 22-12 Propriet della griglia decisionale . . . . . 22-13 Creazione e uso dei grafici decisionali. . . . . 22-14 Creazione di grafici decisionali . . . . . . . 22-14 Uso dei grafici decisionali . . . . . . . . . . 22-14 Visualizzazione del grafico decisionale . . 22-16 Personalizzazione dei grafici decisionali . 22-16 Impostazioni predefinite dei modelli di grafico decisionale . . . . . . . . . . 22-17 Personalizzazione delle serie del grafico decisionale . . . . . . . . . 22-18 Componenti di supporto decisionale in esecuzione . . . . . . . . . . . . . . . . . . 22-19 Pivot decisionali in esecuzione . . . . . . . 22-19 Griglie decisionali in esecuzione . . . . . . 22-20 Grafici decisionali in esecuzione . . . . . . 22-20

Componenti di supporto decisionale e controllo della memoria . . . . . . . . . . Impostazione dei valori massimi per dimensioni, riepiloghi e celle. . . . . . . Impostazione dello stato della dimensione Utilizzo delle dimensioni paginate . . . .

22-20 22-21 22-21 22-21

Capitolo 23 Connessione ai databaseUso di connessioni implicite . . . . . . . . . Controllo delle connessioni . . . . . . . . . Connessione a un server di database . . Scollegamento da un server di database Controllo del login al server . . . . . . . . . Gestione delle transazioni . . . . . . . . . . Avvio di una transazione . . . . . . . . . Chiusura di una transazione . . . . . . . Chiusura di una transazione andata a buon fine . . . . . . . . . . Chiusura di una transazione non andata a buon fine . . . . . . . Specifica del livello di isolamento delle transazioni . . . . . . . . . . . . . . . . Invio di comandi al server . . . . . . . . . . Operazioni con i dataset associati . . . . . . Chiusura dei dataset senza scollegarsi dal server . . . . . . . . . . . . . . . . . Scansione di tutti i dataset associati . . . Ottenimento di metadati . . . . . . . . . . . Elenco delle tabelle disponibili . . . . . Elenco dei campi in una tabella . . . . . Elenco delle procedure registrate disponibili . . . . . . . . . . . . . . . . Elenco degli indici disponibili . . . . . . Elenco dei parametri delle procedure registrate . . . . . . . . . . . . . . . . . . . . . . . . .

23-1. . . . . . . . 23-2 23-3 23-3 23-4 23-4 23-6 23-7 23-8

. . 23-8 . . 23-9 . 23-10 . .23-11 . 23-13 . . . . . 23-13 23-13 23-14 23-14 23-15

. 23-15 . 23-15 . 23-15

Capitolo 24 I datasetUtilizzo dei discendenti di TDataSet . Determinazione degli stati del dataset Apertura e chiusura di dataset . . . . Spostamenti nei dataset . . . . . . . . Uso dei metodi First e Last . . . . . Uso dei metodi Next e Prior . . . . Uso del metodo MoveBy . . . . . . Uso delle propriet Eof e Bof. . . . Eof . . . . . . . . . . . . . . . . . Bof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24-1. . . . . . . . . . 24-2 24-3 24-4 24-5 24-6 24-7 24-7 24-8 24-8 24-9

xiii

Contrassegno e ritorno ai record . . . . . La propriet Bookmark. . . . . . . . . Il metodo GetBookmark . . . . . . . . I metodi GotoBookmark e BookmarkValid . . . . . . . . . . . Il metodo CompareBookmarks . . . . Il metodo FreeBookmark. . . . . . . . Un esempio di utilizzo dei segnalibri. Ricerche nei dataset . . . . . . . . . . . . . . Uso di Locate . . . . . . . . . . . . . . . . Uso di Lookup . . . . . . . . . . . . . . . Visualizzazione e modifica di un sottoinsieme di dati usando i filtri . . . . . Attivazione e disattivazione dei filtri . . Creazione di filtri . . . . . . . . . . . . . . Impostazione della propriet Filter . . Scrittura di un gestore di eventi OnFilterRecord . . . . . . . . . . . . Commutazione dei gestori evento di filtro in esecuzione . . . . . . . . . Impostazione delle opzioni del filtro. . . Spostamento tra i record in un dataset filtrato . . . . . . . . . . . . . . . . . . . Modifica dei dati . . . . . . . . . . . . . . . . Modifica dei record . . . . . . . . . . . . Aggiunta di nuovi record . . . . . . . . . Inserimento di record. . . . . . . . . . Aggiunta di record . . . . . . . . . . . Cancellazione di record . . . . . . . . . . Registrazione dei dati . . . . . . . . . . . Annullamento delle modifiche . . . . . . Modifica di interi record. . . . . . . . . . Calcolo dei campi . . . . . . . . . . . . . . . Tipi di dataset . . . . . . . . . . . . . . . . . Utilizzo dei dataset di tipo tabella . . . . . . Vantaggi dellutilizzo di dataset di tipo tabella . . . . . . . . . . . . . . . Ordinamento dei record con indici . . . . Ottenimento di informazioni sugli indici . . . . . . . . . . . . . . . Specifica di un indice con IndexName Creazione di un indice con IndexFieldNames . . . . . . . . Utilizzo di Indexes per cercare record . . Esecuzione di una ricerca con metodi Goto. . . . . . . . . . . . Esecuzione di una ricerca con metodi Find . . . . . . . . . . . .

. . 24-9 . 24-10 . 24-10 . . . . . . . . . . . 24-10 24-10 24-10 24-10 24-11 24-11 24-12 24-13 24-13 24-14 24-14

. 24-15 . 24-16 . 24-16 . . . . . . . . . . . . . 24-17 24-17 24-18 24-19 24-20 24-20 24-21 24-21 24-22 24-22 24-24 24-24 24-26

. 24-27 . 24-27 . 24-28 . 24-28 . 24-29 . 24-29 . 24-30 . 24-31

Specifica del record corrente dopo una ricerca andata a buon fine . . . . Ricerca in base a chiavi parziali . . . . Ripetizione o ampliamento di una ricerca . . . . . . . . . . . . . . Limitazione dei record con gli intervalli . Differenze fra intervalli e filtri . . . . . Specifica degli intervalli. . . . . . . . . Modifica di un intervallo . . . . . . . . Applicazione o annullamento di un intervallo . . . . . . . . . . . . . . . . Creazione di relazioni master/detail . . . Trasformazione della tabella nella tabella dettaglio di un altro dataset. . Utilizzo di tabelle dettaglio annidate . Controllo dellaccesso alle tabelle in lettura/scrittura. . . . . . . . . . . . . Creazione e cancellazione di tabelle. . . . Creazione di tabelle . . . . . . . . . . . Cancellazione di tabelle . . . . . . . . . Svuotamento di tabelle . . . . . . . . . . . Sincronizzazione di tabelle . . . . . . . . . Utilizzo di dataset di tipo query. . . . . . . . Specifica della query . . . . . . . . . . . . Specifica di una query utilizzando la propriet SQL. . . . . . . . . . . . . . Specifica di una query utilizzando la propriet CommandText . . . . . . . Utilizzo dei parametri nelle query. . . . . Fornitura dei parametri in progettazione . . . . . . . . . . . . Fornitura dei parametri in esecuzione. Impostazione di relazioni master/detail mediante parametri . . . . . . . . . . . . Preparazione di query . . . . . . . . . . . Esecuzione di query che non restituiscono un set risultato . . . . . . . . . . . . . . . Utilizzo di set risultato unidirezionali . . Utilizzo di dataset di tipo procedura registrata . . . . . . . . . . . . . . . . . . . . Operazioni con i parametri delle procedure registrate. . . . . . . . . Impostazione dei parametri in progettazione . . . . . . . . . . . . Utilizzo di parametri in esecuzione . . Preparazione delle procedure registrate . Esecuzione di procedure registrate che non restituiscono un set risultato . . Prelievo di pi set risultato. . . . . . . . .

24-31 24-31 24-31 24-32 24-32 24-33 24-35 24-36 24-37 24-37 24-39 24-39 24-40 24-40 24-43 24-43 24-44 24-44 24-45 24-46 24-47 24-47 24-48 24-49 24-49 24-51 24-51 24-52 24-52 24-54 24-54 24-56 24-57 24-57 24-57

xiv

Capitolo 25 Operazioni con i componenti campo 25-1Componenti campo dinamici. . . . . . . . . . . 25-2 Componenti campo persistenti . . . . . . . . . . 25-3 Creazione di campi persistenti . . . . . . . . 25-4 Disposizione dei campi persistenti . . . . . . 25-5 Definizione di nuovi campi persistenti . . . 25-5 Definizione di un campo dati . . . . . . . 25-7 Definizione di un campo calcolato . . . . 25-7 Programmazione di un campo calcolato . 25-8 Definizione di un campo di consultazione . . . . . . . . . . . . . . 25-9 Definizione di un campo di aggregazione . . . . . . . . . . . . . 25-10 Cancellazione di componenti campo persistenti . . . . . . . . . . . . . . . . . . 25-11 Impostazione di propriet ed eventi dei campi persistenti . . . . . . 25-11 Impostazione delle propriet di visualizzazione e modifica in progettazione . . . . . . 25-12 Impostazione delle propriet del componente campo in esecuzione. . . 25-13 Creazione di set di attributi per i componenti campo . . . . . . . . 25-14 Associazione di set di attributi ai componenti campo . . . . . . . . . . 25-14 Rimozione delle associazioni degli attributi . . . . . . . . . . . . . . 25-15 Controllo e mascheratura dellinput . . 25-15 Uso dei formati predefiniti per i campi numerici, data e ora. . . . . . . . . . . 25-16 Gestione degli eventi . . . . . . . . . . . 25-16 Operazioni con i metodi del componente campo in esecuzione . . . . . . . . . . . . . . 25-17 Visualizzazione, conversione e accesso ai valori di campo . . . . . . . . . . . . . . . 25-18 Visualizzazione dei valori dei componenti campo nei controlli standard. . . . . . . . . . . . 25-19 Conversione dei valori di campo . . . . . . 25-19 Accesso ai valori dei campi con la propriet predefinita del dataset . 25-21 Accesso ai valori dei campi con la propriet Fields di un dataset . . . . . 25-21 Accesso ai valori dei campi con il metodo FieldByName di un dataset . . . . . . . . 25-21 Impostazione del valore predefinito di un campo. . . . . . . . . . . . . . . . . . . 25-22

Utilizzo dei vincoli . . . . . . . . . . . . . . . Creazione di un vincolo custom . . . . . . Uso dei vincoli del server. . . . . . . . . . Uso dei campi oggetto . . . . . . . . . . . . . Visualizzazione di campi ADT e array . . Uso dei campi ADT . . . . . . . . . . . . . Utilizzo di componenti campo persistenti . . . . . . . . . . . . . . . . Utilizzo del metodo FieldByName del dataset . . . . . . . . . . . . . . . Utilizzo della propriet FieldValues del dataset . . . . . . . . . . . . . . . Utilizzo della propriet FieldValues del campo ADT. . . . . . . . . . . . . Utilizzo della propriet Fields del campo ADT. . . . . . . . . . . . . Uso dei campi array. . . . . . . . . . . . . Utilizzo di campi persistenti . . . . . . Uso della propriet FieldValues del campo array . . . . . . . . . . . . Uso della propriet Fields del campo array . . . . . . . . . . . . Uso dei campi dataset. . . . . . . . . . . . Visualizzazione dei campi dataset . . . Accesso ai dati in un dataset annidato Uso dei campi riferimento . . . . . . . . . Visualizzazione dei campi riferimento Accesso ai dati di un campo riferimento . . . . . . . . . . . . . . .

25-22 25-22 25-23 25-24 25-24 25-25 25-25 25-26 25-26 25-26 25-26 25-26 25-27 25-27 25-27 25-28 25-28 25-28 25-29 25-29 25-29

Capitolo 26 Uso di Borland Database EngineLarchitettura BDE . . . . . . . . . . . . . . . Impiego di dataset per BDE . . . . . . . . Associazione di un dataset a connessioni di database e di sessione Cache dei BLOB . . . . . . . . . . . . . Ottenimento degli handle BDE. . . . . Utilizzo di TTable . . . . . . . . . . . . . . Specifica del tipo di tabella per tabelle locali . . . . . . . . . . . . Controllo dellaccesso a tabelle locali in lettura/scrittura . . . . . . . . . . . Specifica di file indice dBASE . . . . . Come rinominare tabelle locali . . . . . Importazione di dati da altre tabelle. . Utilizzo di TQuery . . . . . . . . . . . . . Creazione di query eterogenee . . . . .

26-1. 26-1 . 26-2 . . . . 26-3 26-4 26-4 26-5

. 26-5 . . . . . . 26-6 26-6 26-8 26-8 26-9 26-9

xv

Ottenimento di un set risultato modificabile . . . . . . . . . . . . . . . 26-10 Aggiornamento di set risultato a sola lettura . . . . . . . . . . . . . . . 26-11 Utilizzo di TStoredProc . . . . . . . . . . . 26-12 Inglobamento dei parametri . . . . . . . 26-12 Operazioni con procedure registrate ridefinite Oracle . . . . . . . . . . . . . 26-13 Collegamento ai database tramite TDatabase . . . . . . . . . . . . . 26-13 Associazione di un componente database a una sessione . . . . . . . . 26-13 Interazioni tra il componente Session e i database . . . . . . . . . . . . . . . 26-14 Identificazione del database . . . . . . . 26-14 Apertura di una connessione utilizzando TDatabase . . . . . . . . . 26-16 Impiego di componenti database nei moduli dati . . . . . . . . . . . . . 26-17 Gestione delle sessioni di database . . . . . 26-17 Attivazione di una sessione . . . . . . . 26-18 Specifica del comportamento predefinito della connessione al database . . . . . 26-19 Gestione delle connessioni con il database . . . . . . . . . . . . . . 26-20 Operazioni con tabelle Paradox e dBASE protette da password . . . . 26-22 Specifica delle ubicazioni delle directory di Paradox . . . . . . . 26-25 Operazioni con gli alias BDE . . . . . . 26-26 Reperimento di informazioni su una sessione . . . . . . . . . . . . . 26-27 Creazione di sessioni supplementari . . 26-28 Attribuzione del nome a una sessione . 26-29 Gestione di sessioni multiple . . . . . . 26-30 Utilizzo delle transazioni con BDE. . . . . . . 26-32 Utilizzo di passthrough SQL . . . . . . . . 26-32 Utilizzo delle transazioni locali . . . . . . . 26-33 Utilizzo di BDE per gli aggiornamenti in cache . . . . . . . . . . . . . . . . . . . . . 26-34 Attivazione degli aggiornamenti in cache con BDE . . . . . . . . . . . . . . 26-35 Applicazione degli aggiornamenti in cache basati su BDE . . . . . . . . . . . 26-36 Applicazione degli aggiornamenti nella cache mediante un database . . . . . . 26-37 Applicazione degli aggiornamenti in cache con i metodi dei componenti dataset . . . . . . . . . . . . . . . . . . 26-38

Creazione di un gestore di evento OnUpdateRecord. . . . . . . . . . . . 26-38 Gestione degli errori di aggiornamento 26-40 Aggiornamento di dataset mediante oggetti update . . . . . . . . . . . . . . . 26-42 Creazione di istruzioni SQL per componenti update . . . . . . . . 26-43 Utilizzo di pi oggetti update . . . . . 26-47 Esecuzione delle istruzioni SQL . . . . 26-48 Utilizzo di TBatchMove . . . . . . . . . . . . 26-50 Creazione di un componente batch move 26-51 Specifica della modalit di spostamento batch . . . . . . . . . . . 26-52 Aggiunta di record. . . . . . . . . . . . 26-52 Aggiornamento di record . . . . . . . . 26-52 Aggiunta e aggiornamento di record . 26-53 Copia di dataset . . . . . . . . . . . . . 26-53 Cancellazione di record . . . . . . . . . 26-53 Mappatura dei tipi di dati . . . . . . . . . 26-53 Esecuzione di spostamenti batch . . . . . 26-54 Gestione degli errori di spostamento batch 26-55 Il Data Dictionary . . . . . . . . . . . . . . . . 26-55 Strumenti per operare con BDE . . . . . . . . 26-57

Capitolo 27 Operazioni con componenti ADO

27-1

Panoramica dei componenti ADO . . . . . . . 27-1 Connessione a datastore ADO. . . . . . . . . . 27-2 Connessione a un datastore mediante TADOConnection . . . . . . . . . . . . . . 27-3 Accesso alloggetto connessione . . . . . 27-4 Messa a punto di una connessione . . . . . 27-5 Come forzare connessioni asincrone. . . 27-5 Controllo del timeout . . . . . . . . . . . 27-5 Indicazione dei tipi di operazione che la connessione supporta . . . . . . . . . . 27-6 Come specificare se la connessione avvia in automatico le transazioni . . . 27-7 Accesso ai comandi della connessione . . . 27-7 Eventi di connessione ADO . . . . . . . . . 27-8 Eventi quando si stabilisce una connessione . . . . . . . . . . . . . 27-8 Eventi alla chiusura del collegamento . . 27-8 Eventi durante la gestione delle transazioni . . . . . . . . . . . . . 27-9 Altri eventi . . . . . . . . . . . . . . . . . 27-9 Uso di dataset ADO . . . . . . . . . . . . . . . 27-9 Connessione di un dataset ADO a un datastore. . . . . . . . . . . . . . 27-10

xvi

Operazioni con set di record. . . . . . . 27-11 Filtraggio di record mediante segnalibri 27-11 Prelievo di record in modalit asincrona27-12 Uso di aggiornamenti batch . . . . . . . 27-12 Caricamento e salvataggio di dati su file . . . . . . . . . . . . . . . . . . . 27-15 Utilizzo di TADODataSet . . . . . . . . . . 27-16 Uso di oggetti Command . . . . . . . . . . . . 27-18 Specifica del comando . . . . . . . . . . . . 27-18 Utilizzo del metodo Execute . . . . . . . . 27-19 Annullamento di comandi . . . . . . . . . 27-19 Reperimento di set risultato con comandi . 27-20 Gestione dei parametri dei comandi . . . . 27-20

La struttura dei dataset di metadati . . Debug di applicazioni dbExpress . . . . . . . Utilizzo di TSQLMonitor per controllare i comandi SQL . . . . . . . . . . . . . . . Utilizzo di una callback per controllare i comandi SQL . . . . . . . . . . . . . . .

28-14 28-18 28-18 28-19

Capitolo 29 Utilizzo dei dataset clientUtilizzo dei dati tramite un dataset client . . Come spostarsi tra i dati nei dataset client Come limitare i record da visualizzare . . Editing di dati . . . . . . . . . . . . . . . . Annullamento delle modifiche . . . . . Salvataggio delle modifiche . . . . . . Vincoli sui valori dei dati . . . . . . . . . . Specifica di vincoli custom . . . . . . . Ordinamento e indicizzazione . . . . . . . Aggiunta di un nuovo indice . . . . . . Cancellazione e cambio degli indici . . Uso degli indici per il raggruppamento dei dati . . . . . . . Rappresentazione dei valori calcolati . . . Uso di campi calcolati internamente nei dataset client . . . . . . . . . . . . Uso delle aggregazioni di manutenzione . Specifica delle aggregazioni . . . . . . Aggregazione di gruppi di record . . . Come ottenere valori di aggregazione. Copia dei dati da un altro dataset . . . . . Assegnazione diretta dei dati. . . . . . Clonazione di un cursor di un dataset client . . . . . . . . . . . . . . . . . . . Aggiunta di informazioni specifiche per lapplicazione ai dati . . . . . . . . . . . Utilizzo di un dataset client per registrare in cache gli aggiornamenti. . Panoramica sullutilizzo degli aggiornamenti in cache. . . . . . . Scelta del tipo di dataset per gli aggiornamenti in cache . . . . . . Indicazione dei record modificati . . . . . Aggiornamento dei record . . . . . . . . . Applicazione degli aggiornamenti. . . Interventi durante lapplicazione degli aggiornamenti . . . . . . . . . . . . . Riconciliazione degli errori di aggiornamento . . . . . . . . . . .

29-1. . . . . . . . . . . 29-2 29-2 29-2 29-5 29-5 29-6 29-7 29-7 29-8 29-8 29-9

Capitolo 28 Uso di dataset unidirezionali

28-1

Tipi di dataset unidirezionali . . . . . . . . . . . 28-2 Connessione al server di database . . . . . . . . 28-2 Configurazione di TSQLConnection . . . . . 28-3 Identificazione del driver . . . . . . . . . 28-3 Specifica dei parametri di connessione . . 28-4 Assegnazione di un nome a una descrizione della connessione . . 28-4 Utilizzo di Connection Editor . . . . . . . 28-5 Specifica dei dati da visualizzare. . . . . . . . . 28-6 Rappresentazione dei risultati di una query 28-6 Rappresentazione dei record in una tabella . 28-7 Rappresentazione di una tabella utilizzando TSQLDataSet . . . . . . . . 28-7 Rappresentazione di una tabella utilizzando TSQLTable . . . . . . . . . . 28-7 Rappresentazione dei risultati di una procedura registrata . . . . . . . . . 28-8 Reperimento dei dati . . . . . . . . . . . . . . . 28-8 Preparazione del dataset. . . . . . . . . . . . 28-9 Reperimento di pi dataset . . . . . . . . . . 28-9 Esecuzione di comandi che non restituiscono record . . . . . . . . . 28-10 Specifica del comando da eseguire . . . . . 28-10 Esecuzione del comando . . . . . . . . . . 28-11 Creazione e modifica dei metadati del server . . . . . . . . . . . . . . . . . . 28-11 Configurazione di cursor master/detail collegati . . . . . . . . . . . . . . . . . . . . . 28-12 Accesso a informazioni di schema . . . . . . . 28-13 Prelievo di metadati in un dataset unidirezionale. . . . . . . . . . . . . . . . 28-13 Ottenimento dei dati dopo aver utilizzato il dataset per i metadati. . . 28-14

29-10 .29-11 .29-11 29-12 29-12 29-13 29-14 29-14 29-15 29-15 29-16 29-16 29-17 29-19 29-20 29-21 29-22 29-23 29-24

xvii

Uso di un dataset client con un provider di dati . . . . . . . . . . . . Specifica di un provider . . . . . . . . . . . Richiesta di dati da un dataset sorgente o da un documento . . . . . . . . . . . . . Recupero incrementale . . . . . . . . . . Recupero in automatico . . . . . . . . . Ottenimento dei parametri dal dataset sorgente . . . . . . . . . . . . Passaggio di parametri al dataset sorgente Invio dei parametri di una query o di una procedura memorizzata . . . Delimitazione dei record con i parametri . . . . . . . . . . . . . Gestione dei vincoli dal server . . . . . . . Rinnovo dei record . . . . . . . . . . . . . . Comunicazione con i provider tramite eventi custom . . . . . . . . . . . Ridefinizione del dataset sorgente . . . . . Uso di un dataset client con dati basati su file Creazione di un nuovo dataset . . . . . . . Caricamento dei dati da un file o da uno stream . . . . . . . . . . . . . . . Fusione delle modifiche nei dati . . . . . . Salvataggio dei dati in un file o in uno stream . . . . . . . . . . . . . . . Utilizzo di un dataset semplice. . . . . . . . . Quando utilizzare TSimpleDataSet. . . . . Configurazione di un dataset semplice . .

29-26 29-26 29-27 29-28 29-28 29-29 29-30 29-30 29-31 29-31 29-32 29-33 29-34 29-35 29-35 29-35 29-36 29-37 29-37 29-38 29-38

Capitolo 30 Creazione di applicazioni multi-tier 30-1Vantaggi di un modello database multi-tier . Applicazioni multi-tier su database . . . . . . Panoramica di unapplicazione three-tier . Struttura dellapplicazione client . . . . . . La struttura dellapplication server . . . . Contenuti del modulo dati remoto . . . Uso di moduli dati transazionali . . . . Centralizzazione di moduli dati remoti Scelta di un protocollo di connessione . . . Uso di connessioni DCOM. . . . . . . . Uso delle connessioni socket . . . . . . Uso di connessioni Web . . . . . . . . . Utilizzo di connessioni SOAP . . . . . . Costruzione di unapplicazione multi-tier . . Creazione dellapplication server . . . . . . . Impostazione del modulo dati remoto . . . . 30-2 . 30-2 . 30-3 . 30-4 . 30-5 . 30-6 . 30-6 . 30-8 . 30-9 . 30-9 . 30-9 30-10 30-11 30-11 30-12 30-13

Configurazione di TRemoteDataModule . . . . . . . . . 30-14 Configurazione dei TMTSDataModule 30-15 Configurazione di TSoapDataModule. 30-16 Estensione dellinterfaccia dellapplication server . . . . . . . . . . 30-16 Aggiunta di callback allinterfaccia dellapplication server . . . . . . . . . 30-17 Estensione dellinterfaccia transazionale di un application server 30-17 Gestione delle transazioni nelle applicazioni multi-tiered . . . . . . 30-18 Supporto delle relazioni master/detail . . 30-19 Supporto delle informazioni di stato nei moduli dati remoti . . . . . . . . . . 30-19 Uso di pi moduli dati remoti . . . . . . . 30-21 Registrazione dellapplication server . . . . . 30-22 Creazione dellapplicazione client . . . . . . 30-23 Connessione allapplication server . . . . 30-24 Specifica di una connessione con DCOM . . . . . . . . . . . . . . . 30-24 Specifica di una connessione con i socket . . . . . . . . . . . . . . . 30-25 Specifica di una connessione con HTTP 30-26 Specifica di una connessione con SOAP 30-26 Brokering delle connessioni . . . . . . 30-27 Gestione delle connessioni al server. . . . 30-28 Connessione al server . . . . . . . . . . 30-28 Abbandono o modifica di una connessione a un server . . . . . . . . 30-29 Chiamata delle interfacce del server . . . 30-29 Uso del binding anticipato con DCOM 30-30 Uso di interfacce dispatch con TCP/IP o HTTP . . . . . . . . . . 30-30 Chiamata allinterfaccia di un server basato su SOAP . . . . . . . . . . . . 30-30 Connessione a un application server che utilizza pi moduli dati . . . . . . . 30-31 Scrittura di applicazioni client basate su Web 30-32 Distribuzione di unapplicazione client come controllo ActiveX . . . . . . . . . . 30-33 Creazione di una scheda Active Form per lapplicazione client . . . . . . . . 30-33 Creazione di applicazioni Web con InternetExpress . . . . . . . . . . . . . . 30-34 Creazione di unapplicazione InternetExpress . . . . . . . . . . . . . . 30-35 Uso delle librerie javascript . . . . . . . 30-36

xviii

Concessione dei permessi per laccesso e lavvio dellapplication server . . . . . 30-37 Uso di un broker XML . . . . . . . . . . . . 30-37 Recupero di pacchetti dati XML. . . . . 30-37 Applicazione degli aggiornamenti da pacchetti delta XML . . . . . . . . . . 30-38 Creazione di pagine web con produttori di pagine InternetExpress. . . . . . . . . . . 30-40 Utilizzo di Web page editor . . . . . . . 30-40 Impostazione delle propriet degli elementi Web . . . . . . . . . . . 30-41 Personalizzazione del modello del produttore di pagine InternetExpress. 30-42

Capitolo 32 Uso di XML nelle applicazioni database

32-1

Capitolo 31 Uso di componenti provider

31-1

Individuazione della sorgente dati. . . . . . . . 31-2 Uso di un dataset come sorgente dati . . . . 31-2 Uso di un documento XML come sorgente dati . . . . . . . . . . . . . . 31-2 Comunicazione con il dataset client . . . . . . . 31-3 Come applicare gli aggiornamenti usando un provider di dataset . . . . . . . . . . . . . . . . 31-4 Controllo delle informazioni incluse nei pacchetti dati . . . . . . . . . . . . . . . . . 31-4 Specifica dei campi inclusi in un pacchetto dati . . . . . . . . . . . . . 31-5 Impostazione di opzioni che influenzano i pacchetti dati . . . . . . . . . . . . . . . . . 31-5 Aggiunta di informazioni personali ai pacchetti dati . . . . . . . . . . . . . . . . 31-7 Risposta alle richieste di dati del client . . . . . 31-7 Risposta alle richieste di aggiornamento del client. . . . . . . . . . . . . . . . . . . . . . 31-8 Modifica dei pacchetti delta prima dellaggiornamento del database . . . . . . 31-9 Come influenzare la modalit di applicazione degli aggiornamenti . . . 31-10 Vaglio dei singoli aggiornamenti . . . . . . 31-11 Risoluzione degli errori di aggiornamento sul provider . . . . . . . . . . . . . . . . . 31-12 Applicazione di aggiornamenti a dataset che non rappresentano una singole tabella. . 31-12 Risposta agli eventi generati dal client . . . . 31-13 Gestione dei vincoli del server . . . . . . . . . 31-13

Definizione della trasformazione . . . . . . . . 32-1 Mappatura tra nodi XML e campi di un pacchetto dati . . . . . . . . . . . . . . . . 32-2 Utilizzo di XMLMapper . . . . . . . . . . . 32-4 Caricamento di uno schema XML o di un pacchetto dati . . . . . . . . . . 32-4 Definizione delle mappature . . . . . . . 32-5 Generazione dei file di trasformazione . 32-6 Conversione di documenti XML in pacchetti dati . . . . . . . . . . . . . . . . . 32-6 Specifica del documento XML di origine . . 32-6 Specifica della trasformazione . . . . . . . . 32-7 Generazione del pacchetto dati risultante . 32-7 Conversione dei nodi definiti dallutente. . 32-7 Impiego di un documento XML come origine di un provider . . . . . . . . . . 32-8 Utilizzo di documenti XML come client di un provider . . . . . . . . . . . . . . . . . . . . . 32-9 Prelievo di un documento XML da un provider . . . . . . . . . . . . . . . . 32-9 Applicazione degli aggiornamenti da un documento XML ad un provider . . . . 32-10

Parte III

Creazione di applicazioni InternetCapitolo 33 Creazione di applicazioni server per InternetWeb Broker e WebSnap. . . . . . . . . . . . . Terminologia e standard . . . . . . . . . . . . Parti di uno Uniform Resource Locator. . URI e URL . . . . . . . . . . . . . . . . Informazioni dellheader della richiesta HTTP. . . . . . . . . . . . Attivit di un server HTTP . . . . . . . . . . Composizione delle richieste del client . . Soddisfacimento delle richieste del client Risposta alle richieste del client . . . . . . Tipi di applicazioni per server Web . . . . . . ISAPI e NSAPI . . . . . . . . . . . . . . CGI indipendente . . . . . . . . . . . . Apache . . . . . . . . . . . . . . . . . . Web App Debugger . . . . . . . . . . .

33-1. . . . . . . . . . . . . . 33-1 33-3 33-4 33-4 33-4 33-5 33-5 33-6 33-6 33-6 33-7 33-7 33-7 33-8

xix

Conversione del tipo di destinazione per applicazioni Web server . . . . . . . . . . . 33-8 Debug di applicazioni server . . . . . . . . . . . 33-9 Utilizzo di Web Application Debugger . . . 33-9 Avvio dellapplicazione con Web Application Debugger . . . . . . 33-10 Conversione dellapplicazione in un altro tipo di applicazione per Web server . 33-10 Debug di applicazioni Web sotto forma di DLL . . . . . . . . . . . . . 33-10 Diritti utente necessari per il debug di DLL . . . . . . . . . . . 33-11

Capitolo 34 Utilizzo di Web Broker

34-1

Creazione di applicazioni per Web server con Web Broker. . . . . . . . . . . . . . . . . . 34-1 Il modulo Web . . . . . . . . . . . . . . . . . 34-2 Loggetto Application Web . . . . . . . . . . 34-3 Struttura delle applicazioni Web Broker. . . . . 34-3 Il dispatcher Web. . . . . . . . . . . . . . . . . . 34-4 Aggiunta di azioni al dispatcher . . . . . . . 34-5 Dispatch dei messaggi di richiesta . . . . . . 34-5 Elementi di azione . . . . . . . . . . . . . . . . . 34-6 Determinazione dellattivazione degli elementi di azione . . . . . . . . . . . 34-6 LURL di destinazione . . . . . . . . . . . 34-6 Il tipo di metodo della richiesta . . . . . . 34-7 Attivazione e disattivazione di elementi di azione . . . . . . . . . . . 34-7 Scelta di un elemento di azione predefinito . . . . . . . . . . . . . . . . . 34-7 Risposta a messaggi di richiesta mediante elementi di azione . . . . . . . . . . . . . . 34-8 Invio della risposta . . . . . . . . . . . . . 34-8 Utilizzo di pi elementi di azione. . . . . 34-9 Accesso alle informazioni della richiesta client. 34-9 Propriet contenenti informazioni dello header della richiesta . . . . . . . . . 34-9 Propriet che identificano la destinazione. . . . . . . . . . . . . . . 34-9 Propriet che descrivono il client Web . 34-10 Propriet che identificano lo scopo della richiesta . . . . . . . . . 34-10 Propriet che descrivono la risposta prevista . . . . . . . . . . . 34-10 Propriet che descrivono il contenuto . 34-11 Il contenuto dei messaggi di richiesta HTTP . . . . . . . . . . . . . . 34-11

Creazione di messaggi di risposta HTTP. . . .34-11 Compilazione dellintestazione della risposta . . . . . . . . . . . . . . . . .34-11 Indicazione dello stato della risposta . 34-12 Indicazione della necessit di azione da parte del client . . . . . . . . . . . 34-12 Descrizione dellapplicazione server . 34-12 Descrizione del contenuto . . . . . . . 34-13 Impostazione del contenuto della risposta 34-13 Invio della risposta . . . . . . . . . . . . . 34-13 Generazione del contenuto dei messaggi di risposta . . . . . . . . . . . . . . . . . . . 34-14 Utilizzo di componenti produttori di pagine. . . . . . . . . . . . 34-14 Modelli HTML . . . . . . . . . . . . . . 34-14 Specifica del modello HTML . . . . . . 34-15 Conversione dei tag HTML trasparenti 34-15 Utilizzo dei produttori di pagine partendo da un elemento di azione . 34-16 Concatenamento di produttori di pagine . . . . . . . . . . . . . . . . 34-17 Utilizzo di informazioni di database nelle risposte. . . . . . . . . . . . . . . . . . 34-18 Aggiunta di una sessione a un modulo Web . . . . . . . . . . . . . 34-18 Rappresentazione di informazioni di database in HTML . . . . . . . . . . . 34-19 Utilizzo dei produttori di pagine di dataset . . . . . . . . . . 34-19 Utilizzo dei produttori di tabelle. . . . 34-19 Specifica degli attributi di una tabella . 34-20 Specifica degli attributi di riga . . . . . 34-20 Specifica delle colonne . . . . . . . . . 34-20 Inserimento di tabelle nei documenti HTML . . . . . . . . . 34-21 Impostazione di un produttore di tabelle di dataset . . . . . . . . . . 34-21 Configurazione di un produttore di tabelle di query . . . . . . . . . . . 34-21

Capitolo 35 Creazione di applicazioni Web Server con WebSnapComponenti fondamentali di WebSnap Moduli Web . . . . . . . . . . . . . . Tipi di modulo Web application . Moduli pagina Web . . . . . . . . Moduli dati Web . . . . . . . . . . Adattatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35-1. . . . . . 35-2 35-2 35-3 35-4 35-5 35-5

xx

Campi . . . . . . . . . . . . . . . . . . . Azioni . . . . . . . . . . . . . . . . . . . Errori . . . . . . . . . . . . . . . . . . . . Record . . . . . . . . . . . . . . . . . . . Produttori di pagina . . . . . . . . . . . . . Creazione di applicazioni per Web server con WebSnap . . . . . . . . . . . . . . . . . . Selezione di un tipo server . . . . . . . . . Specifica dei componenti del modulo applicazione . . . . . . . . . . . . . . . . . Selezione delle opzioni del modulo Web application. . . . . . . . . . . . . . . . . . Progettazione HTML evoluta. . . . . . . . . . Trattamento dello script lato server nei file HTML . . . . . . . . . . . . . . . . . . . . Supporto per il login. . . . . . . . . . . . . . . Aggiunta del supporto per il login . . . . . Utilizzo del servizio per le sessioni. . . . . Pagine di login . . . . . . . . . . . . . . . . Impostazione delle pagine in modo che richiedano il login . . . . . . . . . . . . . Diritti di accesso degli utenti . . . . . . . . Visualizzazione dinamica di campi come caselle di testo o di modifica . . Occultamento dei campi e del loro contenuto. . . . . . . . . . . Come evitare laccesso alla pagina . . . Scripting lato server in WebSnap. . . . . . . . Active scripting . . . . . . . . . . . . . . . . Motore di script. . . . . . . . . . . . . . . . Blocchi di script. . . . . . . . . . . . . . . . Creazione di script . . . . . . . . . . . . . . Modelli di wizard . . . . . . . . . . . . . TAdapterPageProducer . . . . . . . . . Modifica e visualizzazione di script . . . . Inclusione di script in una pagina . . . . . Oggetti script . . . . . . . . . . . . . . . . . Indirizzamento di richieste e risposte . . . . . Componenti dispatcher . . . . . . . . . . . Operazioni delladapter dispatcher . . . . Utilizzo di componenti adapter per generare contenuti . . . . . . . . . Ricezione di richieste delladapter e generazione delle risposte . . . . . . . Richiesta di immagine . . . . . . . . . . Risposta di immagine . . . . . . . . . . Indirizzamento degli elementi di azione . Operazione del dispatcher di pagine. . . .

. 35-6 . 35-6 . 35-6 . 35-6 . 35-7 . 35-8 . 35-9 . 35-9 35-11 35-12 35-13 35-14 35-14 35-15 35-16 35-18 35-18 35-19 35-20 35-20 35-20 35-21 35-21 35-21 35-22 35-22 35-22 35-22 35-22 35-23 35-24 35-24 35-24 35-24 35-26 35-28 35-28 35-29 35-30

Capitolo 36 Creazione di applicazioni Web server con IntraWebUtilizzo dei componenti di IntraWeb . . . . . Introduzione a IntraWeb . . . . . . . . . . . . Creazione di una nuova applicazione IntraWeb . . . . . . . . . . . . . . . . . . Modifica della scheda principale . . . . . Scrittura di un gestore di evento per il pulsante . . . . . . . . . . . . . . . Esecuzione dellapplicazione completata. Uso di IntraWeb con Web Broker e WebSnap Per maggiori informazioni . . . . . . . . . . .

36-1. 36-2 . 36-3 . 36-4 . 36-4 . . . . 36-5 36-6 36-7 36-8

Capitolo 37 Operazioni con documenti XML

37-137-2 37-4 37-4 37-4 37-5 37-5 37-6 37-6 37-8 37-9

Utilizzo del Document Object Model . . . . . . Operazioni con i componenti XML . . . . . . . Utilizzo di TXMLDocument . . . . . . . . . Operazioni con i nodi XML . . . . . . . . . Operazioni con il valore di un nodo . . . Operazioni con gli attributi di un nodo . Aggiunta e cancellazione di nodi figlio . Astrazione di documenti XML con Data Binding wizard . . . . . . . . . . . . Utilizzo di XML Data Binding wizard . . . Utilizzo del codice generato da XML Data Binding wizard . . . . . . . . . . . . . . .

Capitolo 38 Utilizzo dei Web Services

38-1

Le interfacce richiamabili . . . . . . . . . . . . 38-2 Utilizzo di tipi non scalari nelle interfacce richiamabili. . . . . . . . . . . . . . . . . . 38-4 Registrazione di tipi non scalari . . . . . 38-5 Utilizzo di oggetti remotable . . . . . . . 38-6 Rappresentazione degli allegati . . . . . 38-7 Gestione della durata degli oggetti remotable . . . . . . . . . 38-7 Esempio di oggetto Remotable . . . . . . 38-8 Scrittura di server che supportano i Web Services . . . . . . . . . . . . . . . . . . 38-9 Creazione di un server Web Service . . . . . 38-9 Utilizzo di SOAP application wizard . . . 38-10 Aggiunta di nuovi Web Services. . . . . . 38-12 Editing del codice generato . . . . . . . 38-12 Utilizzo di una classe di base differente 38-12 Utilizzo di Web Services Importer . . . . . 38-14

xxi

Esame dei Business services. . . . . . . . . Presentazione di UDDI. . . . . . . . . . Utilizzo del browser UDDI . . . . . . . Definizione e utilizzo degli header SOAP . Definizione delle classi header . . . . . Invio e ricezione degli header . . . . . . Comunicazione ad altre applicazioni della struttura degli header . . . . . . Creazione di classi di eccezione custom per Web Services . . . . . . . . . . . . . . Generazione di documenti WSDL per unapplicazione Web Service . . . . . . . Scrittura di client per Web Services . . . . . . Importazione di documenti WSDL . . . . . Chiamata a interfacce richiamabili . . . . . Ottenimento di uninterfaccia richiamabile dalla funzione generata . Utilizzo di un oggetto connesso remoto Elaborazione degli header nelle applicazioni client . . . . . . . . . .

38-15 38-15 38-16 38-16 38-16 38-17 38-18 38-19 38-19 38-20 38-20 38-21 38-21 38-22 38-23

Connessione con i client. . . . . . . . Chiusura delle connessioni server . . Risposta agli eventi socket . . . . . . . . . . Eventi di errore . . . . . . . . . . . . . . Eventi del client . . . . . . . . . . . . . . Eventi del server. . . . . . . . . . . . . . Eventi durante lascolto . . . . . . . . Eventi con connessioni client . . . . . Lettura e scrittura sulle connessioni socket Connessioni non bloccanti . . . . . . . . Eventi di lettura e scrittura . . . . . . Connessioni bloccanti. . . . . . . . . . .

. . . . . . . . . . . .

. 39-8 . 39-8 . 39-8 . 39-8 . 39-9 . 39-9 . 39-9 . 39-9 39-10 39-10 39-10 39-10

Parte IV

Sviluppo di applicazioni COMCapitolo 40 Panoramica sulle tecnologie COM

40-1

Capitolo 39 Operazioni con i socketImplementazione dei servizi . . . . . . . I protocolli di servizio . . . . . . . . . Comunicare con le applicazioni . . Servizi e porte. . . . . . . . . . . . . . Tipi di connessioni socket . . . . . . . . . Connessioni client . . . . . . . . . . . Connessioni di ascolto . . . . . . . . . Connessioni server . . . . . . . . . . . Descrizione dei socket . . . . . . . . . . . Descrizione dellhost . . . . . . . . . . Scelta tra un nome di host e un indirizzo IP. . . . . . . . . . Uso delle porte . . . . . . . . . . . . . Utilizzo dei componenti socket. . . . . . Ottenimento di informazioni sulla connessione . . . . . . . . . . . Utilizzo di socket client . . . . . . . . Specifica del server desiderato . . Formazione della connessione . . Ottenimento di informazioni sulla connessione . . . . . . . . . . . . Chiusura della connessione . . . . Uso dei socket server. . . . . . . . . . Specifica della porta . . . . . . . . Ascolto delle richieste provenienti da client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39-1. 39-1 . 39-2 . 39-2 . 39-2 . 39-2 . 39-3 . 39-3 . 39-3 . 39-3 . 39-4

. . . . 39-5 . . . . 39-5 . . . . 39-5 . . . . . . . . . . . . . . . . . . . . . . . . . 39-6 . 39-6 . 39-6 . 39-7 . 39-7 . 39-7 . 39-7 . 39-7

. . . . 39-7

COM come specifica e implementazione 40-2 Estensioni COM . . . . . . . . . . . . . . 40-2 Parti di unapplicazione COM. . . . . . . . . . 40-3 Interfacce COM . . . . . . . . . . . . . . . . 40-3 Linterfaccia COM fondamentale, IUnknown . . . . . . . . . . . . . . . . 40-4 Puntatori di interfaccia COM. . . . . . . 40-5 Server COM . . . . . . . . . . . . . . . . . . 40-5 CoClass e class factory . . . . . . . . . . 40-6 Server in-process, out-of-process e remoti . . . . . . . . . . . . . . . . . . 40-6 Il meccanismo di smistamento . . . . . . 40-8 Aggregazione. . . . . . . . . . . . . . . . 40-9 Client COM . . . . . . . . . . . . . . . . . 40-10 Estensioni COM . . . . . . . . . . . . . . . . . 40-10 Server Automation . . . . . . . . . . . . . 40-12 Active Server Pages . . . . . . . . . . . . . 40-13 Controlli ActiveX . . . . . . . . . . . . . . 40-13 Active Document . . . . . . . . . . . . . . 40-14 Oggetti transazionali . . . . . . . . . . . . 40-14 Librerie di tipi . . . . . . . . . . . . . . . . 40-15 Contenuto delle librerie di tipi . . . . . 40-16 Creazione di librerie di tipi . . . . . . . 40-16 Quando usare le librerie di tipi. . . . . 40-17 Accesso alle librerie di tipi . . . . . . . 40-17 Vantaggi delluso delle librerie di tipi . 40-18 Uso degli strumenti della libreria di tipi 40-18 Implementazione degli oggetti COM con i wizard . . . . . . . . . . . . . . . . . . 40-19 Codice generato dai wizard . . . . . . . . 40-22

xxii

Capitolo 41 Operazioni con le librerie di tipiIl Type Library editor . . . . . . . . . . . . . . Elementi del Type Library editor . . . . . . Barra strumenti . . . . . . . . . . . . . . Pannello Object list . . . . . . . . . . . . Barra di stato . . . . . . . . . . . . . . . Pagine di informazioni di tipo. . . . . . Elementi del Type Library editor . . . . . . Interfacce. . . . . . . . . . . . . . . . . . Dispinterface . . . . . . . . . . . . . . . CoClass . . . . . . . . . . . . . . . . . . Definizioni di tipo . . . . . . . . . . . . Moduli . . . . . . . . . . . . . . . . . . . Uso del Type Library editor . . . . . . . . . Tipi consentiti . . . . . . . . . . . . . . . Uso della sintassi Delphi o IDL . . . . . Creazione di una nuova libreria di tipi . Apertura di un libreria di tipi esistente Aggiunta di uninterfaccia alla libreria di tipi . . . . . . . . . . . . Modifica di un'interfaccia con il Type Library editor . . . . . . . Aggiunta di propriet e metodi ad una interface o dispinterface . . . . . . . . Aggiunta di una CoClass alla libreria di tipi . . . . . . . . . . . . Aggiunta di un'interfaccia a una CoClass . . . . . . . . . . . . . . Aggiunta di una enumeration alla libreria di tipi . . . . . . . . . . . . Aggiunta di un alias alla libreria di tipi Aggiunta di un record o di una union alla libreria di tipi . . . . . . . . . . . . Aggiunta di un modulo alla libreria di tipi . . . . . . . . . . . . Salvataggio e registrazione delle informazioni della libreria di tipi . . . Finestra di dialogo Apply Updates . . . Salvataggio di una libreria di tipi . . . . Aggiornamento della libreria di tipi . . Registrazione della libreria di tipi. . . . Esportazione di un file IDL . . . . . . . Distribuzione di librerie di tipi . . . . . . . . .

41-1. 41-2 . 41-3 . 41-4 . 41-5 . 41-6 . 41-6 . 41-9 . 41-9 41-10 41-10 41-11 41-11 41-12 41-12 41-14 41-20 41-20 41-21 41-22 41-22 41-24 41-24 41-25 41-25 41-25 41-26 41-26 41-27 41-27 41-28 41-28 41-28 41-29

Uso della finestra di dialogo Import Type Library. . . . . . . . . . . . . 42-3 Uso della finestra di dialogo Import ActiveX . . . . . . . . . . . . . . . 42-4 Codice generato durante limportazione delle informazioni di una libreria di tipi . . . . 42-5 Controllo di un oggetto importato . . . . . . . 42-6 Uso di wrapper di componenti . . . . . . . 42-6 Wrapper ActiveX. . . . . . . . . . . . . . 42-7 Wrapper di oggetti Automation . . . . . 42-7 Uso di controlli ActiveX associati ai dati . . 42-8 Esercitazione: stampa di un documento con Microsoft Word . . . . . . . . . . . . 42-10 Preparazione di Delphi per lesercitazione . . . . . . . . . . . 42-10 Importazione della libreria di tipi di Word . . . . . . . . . . . . . .42-11 Uso di un oggetto interfaccia VTable o dispatch per il controllo di Microsoft Word . . . . . . . . . . . .42-11 Ripristino dello stato originario . . . . 42-13 Scrittura del codice del client in base alle definizioni della libreria di tipi . . . . . . . . . . . . 42-13 Connessione a un server . . . . . . . . 42-13 Controllo di un server Automation usando uninterfaccia duale . . . . . 42-14 Controllo