|
|
CONSIGLIATO DA LIBRINFORMATICA
Delphi La grande guida - aggiornato alla versione 2006
|
| Editore | Mondadori Informatica |
| Autore | Cantu' Marco |
| Collana | Programming series |
| Pagine | 890 |
| Volumi | 1 |
| Livello | Avanzato |
| Lingua | Italiano |
| Data pubblicazione | 01 - 2006 |
| ISBN | 8804541474 |
|
|
| Prezzo di copertina |
| Euro 70,00 |
|
Sommario
Ringraziamenti .....................................................................................................................................................xxvii
Introduzione
E nove! .................................................................................................................................................xxix
Mastering Delphi nel corso degli anni ................................................................................................xxx
La struttura del libro ............................................................................................................................xxx
Il codice sorgente su Internet .............................................................................................................xxxi
L’IDE di Delphi 2006 ......................................................................................................................... xxxii
Come contattare l’autore ................................................................................................................... xxxii
Parte I Fondamenti di Delphi
Capitolo 1 Introduzione a Borland Developer Studio 3.0 ...........................................................................3
Edizioni di Delphi ...................................................................................................................................3
Panoramica dell’IDE ...............................................................................................................................4
Un IDE dalle molte personalità .......................................................................................................4
Un IDE per .NET e ALM ..................................................................................................................5
Installazione parziale .........................................................................................................................6
Usare l’IDE in diverse configurazioni .............................................................................................6
Benvenuti in Delphi 2005 .................................................................................................................7
Struttura dell’IDE ...............................................................................................................................8
Le impostazioni del Desktop ..........................................................................................................10
La barra dei menu ............................................................................................................................10
La To-Do List ..................................................................................................................................10
Risultati delle ricerche .....................................................................................................................12
L’editor di Delphi ...................................................................................................................................12
Comprimere ed espandere sezioni di codice in Delphi 2005 ....................................................13
Codifica dei file sorgenti .................................................................................................................14
Code snippet in Delphi 2005 ..........................................................................................................14
Code Insight ....................................................................................................................................14
Editing sincronizzato (Sync Edit) ..................................................................................................17
Usare la Structure View nell’editor ................................................................................................18
Navigare nell’editor ..........................................................................................................................19
Completamento di classi (Class Completion) .............................................................................19
Altre combinazioni di tasti dell’editor ...........................................................................................20
Usare lo storico (history) dell’editor ..............................................................................................20
Altre novità dell’editor .....................................................................................................................22
I designer ................................................................................................................................................22
L’Object Inspector ............................................................................................................................24
Usare la Structure View nel designer ............................................................................................25
Gestione dei progetti ..............................................................................................................................27
Strumenti di build e altri strumenti ..............................................................................................28
I file di progetto ...............................................................................................................................28
Il project group ................................................................................................................................32
Le opzioni di progetto .....................................................................................................................32
Un’occhiata ai file sorgenti ..............................................................................................................33
Oltre la programmazione Delphi .........................................................................................................34
C# in Delphi 2005 ............................................................................................................................34
Il designer UML ...............................................................................................................................35
Strumenti di gestione database dell’IDE .......................................................................................36
L’IDE di Delphi 2006 ..............................................................................................................................37
L’estetica dell’IDE .............................................................................................................................38
Il Form Designer della VCL ...........................................................................................................38
L’editor di Delphi 2006 ....................................................................................................................39
Il designer UML ...............................................................................................................................41
Strumenti di gestione database dell’IDE .......................................................................................41
Una nuova personalità: C++ ..........................................................................................................42
Il debugger in Delphi 2006 .............................................................................................................42
Ed ora… ..................................................................................................................................................43
Capitolo 2 Le piattaforme: Win32 e Microsoft .NET ................................................................................... 45
La API di Win32 ....................................................................................................................................45
Librerie di classi orientate agli oggetti ..........................................................................................46
La soluzione COM ...........................................................................................................................47
Cosa è Microsoft .NET? .........................................................................................................................47
Gli obiettivi di .NET secondo il “marketing” ...............................................................................48
Perché .NET? ...................................................................................................................................49
VES: Virtual Execution System ............................................................................................................50
CIL: Common Intermediate Language ...............................................................................................51
CLS: Common Language Specification ...............................................................................................52
CLR: Common Language Runtime .....................................................................................................53
Il ciclo di compilazione in .NET e il JIT ..............................................................................................53
Il modello di esecuzione “managed” e la garbage collection ............................................................56
CTS: Common Type System .................................................................................................................57
CTS: i tipi valore ..............................................................................................................................58
CTS: i tipi riferimento .....................................................................................................................58
Namespace e assembly ...........................................................................................................................59
Cos’è un assembly? ...........................................................................................................................59
Collegamento e caricamento di assembly ....................................................................................60
La GAC e il versioning degli assembly ..........................................................................................61
Caricamento dinamico degli assembly .........................................................................................62
Ed ora... ...................................................................................................................................................63
Capitolo 3 Il linguaggio Delphi ....................................................................................................................... 65
Caratteristiche di base del linguaggio ..................................................................................................65
Classi e Oggetti ......................................................................................................................................66
Ancora sui metodi ...........................................................................................................................68
Creazione dinamica di componenti ..............................................................................................68
Incapsulazione .......................................................................................................................................69
Private, Protected e Public ..............................................................................................................70
Quando il privato è davvero privato .............................................................................................71
Incapsulare con le proprietà ...........................................................................................................72
Incapsulazione e form .....................................................................................................................74
I costruttori ............................................................................................................................................76
I distruttori e il metodo Free ............................................................................................77
Il modello a riferimenti di Delphi ........................................................................................................78
Assegnamento di oggetti .................................................................................................................78
Oggetti e memoria ...........................................................................................................................80
Derivare da tipi esistenti ........................................................................................................................81
Ereditarietà e compatibilità di tipo ................................................................................................84
Late Binding e polimorfismo ................................................................................................................84
Override e ridefinizione dei metodi ..............................................................................................86
Metodi virtuali e dinamici ..............................................................................................................87
Metodi astratti .................................................................................................................................88
Le parole chiave final e sealed ..........................................................................................89
Tipi e costanti annidati ..........................................................................................................................89
Downcast sicuro ....................................................................................................................................91
Utilizzo delle interfacce .........................................................................................................................92
Lavorare con le eccezioni ......................................................................................................................94
Il flusso del programma e il blocco finally ....................................................................................95
Classi di eccezioni ............................................................................................................................96
Tenere un registro degli errori .......................................................................................................98
Eccezioni e costruttori ....................................................................................................................99
Riferimenti alle classi (class reference) ................................................................................................99
Creazione di componenti tramite class reference ......................................................................101
Il ciclo for..in .................................................................................................................102
Inlining ...........................................................................................................................................104
Il compilatore Win32 di Delphi 2006 ................................................................................................107
Ed ora… ................................................................................................................................................107
Capitolo 4 Il linguaggio Delphi per .NET .................................................................................................... 109
Il linguaggio Delphi su Microsoft .NET ............................................................................................109
Vecchie, care unit ................................................................................................................................110
I simboli globali e la classe “finta” per la unit ............................................................................110
Unit come namespace (più o meno) ...........................................................................................111
Inizializzazione delle unit e costruttori di classe .......................................................................113
Identificatori .........................................................................................................................................114
Identificatori qualificati .................................................................................................................114
Identificatori Unicode ...................................................................................................................114
Tipi di dato di base ...............................................................................................................................115
Tipi primitivi .................................................................................................................................115
Boxing dei tipi primitivi ................................................................................................................117
I tipi enumerati e set di Delphi ....................................................................................................118
Record superpotenziati ........................................................................................................................118
Record o classi ...............................................................................................................................120
I nuovi record predefiniti di Delphi ............................................................................................121
I tipi riferimento ..................................................................................................................................121
Stringhe ................................................................................................................................................121
Usare tipi “unsafe” ...............................................................................................................................123
Record varianti ...............................................................................................................................124
Parametri senza tipo ......................................................................................................................125
Allocare memoria con New ..........................................................................................................125
Usare il tipo PChar ........................................................................................................................126
Il tipo file of non c’è più ...................................................................................................126
Conversioni di tipo sicure ...................................................................................................................127
Le classi guadagnano terreno .............................................................................................................128
Specificatori di accesso ..................................................................................................................128
Membri statici di classe .................................................................................................................130
Costruttori di classe .......................................................................................................................131
Classi astratte .................................................................................................................................132
Class helper ....................................................................................................................................132
Proprietà ........................................................................................................................................134
Proprietà array indicizzate ............................................................................................................136
Chiamare un costruttore su un oggetto già creato ....................................................................137
Chiamare il costruttore ereditato .................................................................................................137
Free e Destroy nel mondo della garbage collection ..................................................................138
Class Reference e metaclassi ...............................................................................................................140
Le interfacce diventano “pure” ...........................................................................................................141
Gli operatori guadagnano terreno .....................................................................................................143
Attributi: RTTI all’ennesima potenza ................................................................................................146
Dichiarare attributi personalizzati ...............................................................................................147
Accedere agli attributi attraverso la reflection ...........................................................................148
Eventi a gestore multiplo (multicast) ..........................................................................................149
Il linguaggio per Win32 in Delphi 2006 ............................................................................................151
Variabili di classe in Win32 ..........................................................................................................151
Record con metodi e overloading degli operatori .....................................................................151
Class Helper ...................................................................................................................................152
Il compilatore Delphi per .NET e il Compact Framework in Delphi 2006 ..................................152
Ed ora... .................................................................................................................................................153
Capitolo 5 La libreria di run time Win32 di Delphi ................................................................................... 155
Le unit della RTL .................................................................................................................................155
La unit System in Win32 ..............................................................................................................156
Le unit SysUtils e SysConst ..........................................................................................................158
La unit Math ..................................................................................................................................161
Le unit ConvUtils e StdConvs ......................................................................................................163
La unit DateUtils ............................................................................................................................165
La unit StrUtils ...............................................................................................................................166
La nuova unit WideStrUtils ..........................................................................................................167
La unit Types .................................................................................................................................167
Le unit Variants e VarUtils ...........................................................................................................167
Le unit DelphiMM e ShareMem ..................................................................................................168
Gestione di file con SysUtils ................................................................................................................169
La classe TObject .................................................................................................................................170
Mostrare informazioni sulle classi ...............................................................................................173
La classe TPersistent .............................................................................................................................173
La parola chiave published ............................................................................................................175
Accedere alle proprietà per nome ................................................................................................176
Classi per liste e contenitori ................................................................................................................178
Liste e liste di stringhe ...................................................................................................................178
Contenitori ....................................................................................................................................181
Contenitori e liste type-safe ..........................................................................................................184
Streaming .............................................................................................................................................186
La classe TStream ...........................................................................................................................186
Classi stream specifiche ................................................................................................................188
Usare la classe TFileStream ...........................................................................................................189
Le classi TReader e TWriter ..........................................................................................................190
Stream e persistenza ......................................................................................................................190
Stream compressi con ZLib ..........................................................................................................195
La libreria Runtime in Delphi 2006 ...................................................................................................196
FastMM ..........................................................................................................................................196
FastCode ........................................................................................................................................197
Altre novità della RTL ...................................................................................................................197
Ed ora… ................................................................................................................................................198
Capitolo 6 Architettura della Visual Component Library ........................................................................ 199
La classe TComponent .........................................................................................................................199
Proprietà (ownership) e proprietari (owner) .............................................................................200
La proprietà Name .........................................................................................................................203
Rimuovere i campi delle form ......................................................................................................203
Nascondere i campi delle form ....................................................................................................204
Tag, la proprietà personalizzabile (in Win32 e .NET) ..............................................................205
La classe TComponent nella VCL per .NET ...............................................................................206
Eventi ....................................................................................................................................................208
Gli eventi in Delphi .......................................................................................................................208
Puntatori ai metodi ........................................................................................................................209
Gli eventi sono proprietà ..............................................................................................................210
Aree tradizionali della VCL ................................................................................................................211
Considerazioni sulla VCL .............................................................................................................212
TControl e classi derivate .....................................................................................................................213
TControl e classi derivate in .NET ...............................................................................................214
Parent e i controlli ..........................................................................................................................214
Le proprietà per posizionare e dimensionare i controlli ..........................................................215
Proprietà di attivazione e visibilità ..............................................................................................215
Font di caratteri ..............................................................................................................................216
Colori .............................................................................................................................................216
La classe TWinControl ..................................................................................................................217
La cassetta degli attrezzi ......................................................................................................................217
L’input del testo ..............................................................................................................................218
La selezione delle opzioni .............................................................................................................219
Liste ................................................................................................................................................221
Intervalli .........................................................................................................................................225
Comandi ........................................................................................................................................226
Tecniche applicabili ai controlli ..........................................................................................................231
La gestione del fuoco (input focus) .............................................................................................231
Ancoraggio dei controlli ...............................................................................................................234
Usare il componente Splitter ........................................................................................................234
I tasti di scelta rapida .....................................................................................................................236
Usare gli Hint ................................................................................................................................237
Controlli owner-draw e stili .........................................................................................................239
Controlli ListView e TreeView ...........................................................................................................242
Una lista di riferimenti grafica .....................................................................................................243
Un albero di dati ............................................................................................................................247
Personalizzare i nodi del TreeView .............................................................................................249
La VCL in Delphi 2006 ........................................................................................................................251
Margini e Padding .........................................................................................................................251
Pannelli di layout ...........................................................................................................................252
Il componente TrayIcon ................................................................................................................253
Altre novità della VCL ..................................................................................................................254
Ed ora… ................................................................................................................................................255
Capitolo 7 Lavorare con le form .................................................................................................................... 257
La classe TForm ...................................................................................................................................257
Usare TForm direttamente ............................................................................................................258
Lo stile di una form .......................................................................................................................259
Lo stile del bordo ...........................................................................................................................259
Altri stili della finestra ...................................................................................................................260
Gestire l’input in una form ..................................................................................................................261
Gestione dell’input dalla tastiera .................................................................................................261
Gestione del mouse .......................................................................................................................263
Trascinare e disegnare con il mouse ............................................................................................264
Disegnare sulle form ............................................................................................................................267
Tecniche grafiche insolite: Alpha blending, Color key e la API AnimateWindow ...............268
Posizione, dimensioni, scorrimento e scala delle form ...................................................................269
La posizione delle form .................................................................................................................269
Agganciare le form ai lati dello schermo ....................................................................................270
La dimensione di una form e la sua area client .........................................................................270
Vincoli sulla dimensione delle form ...........................................................................................270
Far scorrere il contenuto di una form .........................................................................................271
Creare e chiudere le form ....................................................................................................................272
Eventi relativi alla creazione delle form ......................................................................................273
Chiudere una form ........................................................................................................................273
Finestre di dialogo e altre form secondarie ......................................................................................274
Aggiungere una seconda form ad un programma ....................................................................275
Creare form secondarie a run time .............................................................................................275
Le form modali e la nuova modalità Popup ...............................................................................277
Creare una finestra di dialogo ............................................................................................................277
La finestra di dialogo dell’esempio RefList .................................................................................278
Una finestra di dialogo non modale ............................................................................................279
Le finestre di dialogo predefinite di Windows .................................................................................281
L’oggetto Application ............................................................................................................................282
Attivare applicazioni e form .........................................................................................................284
Gestire il messaggio di attivazione di una form in Delphi 2005 ..............................................284
Tenere traccia delle form tramite l’oggetto Screen .....................................................................285
Creazione di applicazioni MDI ..........................................................................................................287
Finestre frame e finestre figlie in Delphi ....................................................................................287
L’esempio MdiDemo ......................................................................................................................288
L’esempio MdiMulti .......................................................................................................................289
Ereditarietà visuale ...............................................................................................................................290
Ereditare da una form di base ......................................................................................................290
Form polimorfiche .........................................................................................................................293
Come funzionano i frame ...................................................................................................................294
Frame e pagine ...............................................................................................................................296
Più frame e nessuna pagina ..........................................................................................................298
Form di base e interfacce .....................................................................................................................299
Usare una form base ......................................................................................................................300
Usare le interfacce ..........................................................................................................................302
Ed ora... .................................................................................................................................................303
Capitolo 8 Creare l’interfaccia utente con la VCL (per Win32 e .NET) .................................................. 305
Form multi-pagina ...............................................................................................................................305
I componenti PageControl e TabSheet ........................................................................................306
Un visualizzatore di immagini con tab owner-draw .................................................................309
L’interfaccia utente di un Wizard .................................................................................................311
Il controllo ToolBar ..............................................................................................................................312
L’esempio RichBar ..........................................................................................................................312
Un Menu e un ComboBox in una ToolBar ................................................................................314
Una semplice barra di stato ..........................................................................................................315
Temi di Windows XP ...........................................................................................................................317
L’architettura ActionList ......................................................................................................................318
Azioni predefinite ..........................................................................................................................320
I componenti Action in pratica ....................................................................................................321
Una ToolBar e una ActionList per un editor ..............................................................................323
Contenitori per barre degli strumenti: la ControlBar .....................................................................325
Un menu in una ControlBar ........................................................................................................327
Il supporto di Delphi al docking ..................................................................................................327
Docking di ToolBar all’interno delle ControlBar ......................................................................328
Il docking su un PageControl ......................................................................................................332
I nuovi componenti per il docking di Delphi 2005 ...................................................................334
L’architettura ActionManager .............................................................................................................335
Una semplice dimostrazione ........................................................................................................336
Voci di menu usate meno recentemente (LRU) ........................................................................338
Porting di un programma esistente .............................................................................................340
Usare le azioni per elenchi ............................................................................................................340
Ed ora… ................................................................................................................................................342
Capitolo 9 La libreria di run time di Delphi per .NET e la libreria di classi del framework .NET .... 345
La libreria di run time di Delphi per .NET .......................................................................................345
La unit System in Delphi per .NET .............................................................................................345
Il run time di Delphi: Borland.Delphi.DLL ...............................................................................347
Le routine in Borland.VclRtl ........................................................................................................347
Borland.VclRtl Classes ..................................................................................................................349
La Base Class Library (BCL) ...............................................................................................................350
La classe System.Object ................................................................................................................351
La classe StringBuilder ..................................................................................................................353
Classi contenitore ..........................................................................................................................354
Espressioni regolari (regular expression) ...................................................................................357
Gli stream in .NET ........................................................................................................................358
The Component Class ...................................................................................................................358
WinForms ............................................................................................................................................360
Niente DFM, solo codice ..............................................................................................................360
“Falsi amici” e altre differenze ......................................................................................................362
I controlli in WinForms ................................................................................................................363
Da GDI a GDI+ ..............................................................................................................................364
La classe Form ...............................................................................................................................367
Caratteristiche della VCL non supportate in WinForms .........................................................367
La RTL di Delphi 2006 per .NET .......................................................................................................368
Il supporto per il CF .....................................................................................................................368
Ed ora... .................................................................................................................................................368
Parte II Architetture ad oggetti
Capitolo 10 Refactoring e Unit Testing .......................................................................................................... 373
Oltre il RAD .........................................................................................................................................373
Metodologie agili ...........................................................................................................................374
Extreme Programming .................................................................................................................374
Refactoring ....................................................................................................................................376
Unit testing ....................................................................................................................................377
Combinare refactoring e unit testing ..........................................................................................377
Refactoring in Delphi 2005 .................................................................................................................377
Dichiarare campi e variabili (Declare) ........................................................................................378
Estrarre resourcestring (Extract Resource String) ....................................................................379
Rinominare simboli (Rename) ....................................................................................................380
Estrarre metodi (Extract Method) ...............................................................................................381
Trovare unit (Find Unit) ...............................................................................................................383
Trovare riferimenti (Find References) ........................................................................................384
Unit Testing in Delphi 2005 ................................................................................................................385
DUnit ..............................................................................................................................................385
NUnit ..............................................................................................................................................389
Suggerimenti sullo unit testing ....................................................................................................392
Nuovi refactoring in Delphi 2006 ......................................................................................................393
Modificare i parametri .................................................................................................................393
Estrazione di interfaccia e di classe base .....................................................................................394
Introduzione ed eliminazione di campi e variabili ....................................................................395
Altri refactoring nuovi in Delphi 2006 .......................................................................................395
Ed ora... .................................................................................................................................................396
Capitolo 11 Architetture dinamiche (con librerie, package e assembly) .............................................. 397
DLL in Win32 ......................................................................................................................................397
Cos’è il collegamento dinamico? ..................................................................................................397
A cosa servono le DLL? .................................................................................................................398
Regole per scrivere DLL in Delphi ..............................................................................................399
Utilizzo di DLL esistenti ...............................................................................................................400
Creazione di DLL Win32 in Delphi ...................................................................................................401
Esportare stringhe da una DLL ....................................................................................................402
Chiamare la DLL Delphi ...............................................................................................................403
Cambiare nome alle librerie .........................................................................................................404
Chiamare una funzione da una DLL a run time .......................................................................405
Una DLL Win32 in memoria: codice e dati ......................................................................................406
Condivisione dei dati con i memory-mapped file .....................................................................409
I package in Delphi ..............................................................................................................................410
Usare i package run time ..............................................................................................................410
Creazione di package design time e run time ............................................................................411
Scrivere e compilare un package ..................................................................................................411
Versioni dei package ......................................................................................................................412
Architetture dinamiche con i package ...............................................................................................413
Un’applicazione con i package run time .....................................................................................413
Caricare i package a run time ......................................................................................................415
Usare interfacce nei package ........................................................................................................417
La struttura di un package ..................................................................................................................420
Dai package agli assembly ...................................................................................................................423
Scrivere e usare una DLL managed .............................................................................................423
Caricare dinamicamente una DLL managed .............................................................................424
Dal caricamento al download ......................................................................................................425
Architetture dinamiche con gli assembly ...................................................................................426
Esaminare gli assembly ........................................................................................................................426
Ed ora… ................................................................................................................................................428
Capitolo 12 Interoperabilità tra COM e .NET ................................................................................................ 429
Breve storia di COM e .NET ...............................................................................................................430
Implementare IUnknown ....................................................................................................................430
I GUID (Globally Unique IDentifier) .........................................................................................431
Il ruolo delle Class Factory ...........................................................................................................432
Un primo server COM ........................................................................................................................433
Interfacce e oggetti COM .............................................................................................................434
Inizializzare l’oggetto COM ..........................................................................................................435
Provare il server COM ..................................................................................................................436
Proprietà nelle interfacce ..............................................................................................................437
Automation ..........................................................................................................................................438
Effettuare una chiamata Automation ..........................................................................................439
Scrivere un server Automation ...........................................................................................................441
L’editor di Type Library .................................................................................................................441
Il codice del server .........................................................................................................................442
Registrare il server Automation ...................................................................................................444
Scrivere un client per il server .....................................................................................................444
Intervallo di visibilità degli oggetti Automation ........................................................................446
Il server in un componente ..........................................................................................................447
Tipi di dati COM ...........................................................................................................................448
Interoperabilità con .NET ...................................................................................................................448
Usare COM da .NET .....................................................................................................................449
Usare DLL Win32 in .NET ...........................................................................................................455
Usare oggetti .NET in applicazioni client COM ........................................................................460
Chiamare routine .NET in applicazioni Win32 .........................................................................463
Ed ora… ................................................................................................................................................464
Parte III Architetture Database con Delphi
Capitolo 13 L’architettura database di Delphi ............................................................................................. 467
Accesso ai dati in Win32: dbExpress, dati locali e altre alternative ...............................................467
La libreria dbExpress .....................................................................................................................468
Borland Database Engine (BDE) .................................................................................................468
InterBase Express ...........................................................................................................................469
MyBase e il componente ClientDataSet ......................................................................................469
dbGo per ADO ..............................................................................................................................470
Componenti dataset personalizzati .............................................................................................471
MyBase: un ClientDataSet a se stante ................................................................................................471
Connessione ad una tabella locale ...............................................................................................471
Da Midas.DLL alla unit MidasLib ...............................................................................................472
Formato XML o CDS ....................................................................................................................472
Definire una nuova tabella locale ................................................................................................473
Indici ..............................................................................................................................................474
Filtri ................................................................................................................................................474
Ricerche ..........................................................................................................................................475
Usare i controlli data-aware ................................................................................................................476
Mostrare dati in una griglia .........................................................................................................477
Il DBNavigator e le azioni dataset ...............................................................................................477
Controlli data-aware per dati testuali .........................................................................................478
Controlli data-aware per elenchi .................................................................................................478
Usare i controlli di lookup ............................................................................................................480
Controlli grafici data-aware ..........................................................................................................481
La classe TDataSet ...............................................................................................................................481
Lo stato di un dataset ....................................................................................................................485
I campi di un dataset ............................................................................................................................486
Usare gli oggetti Field ....................................................................................................................488
Una gerarchia di classi Field .........................................................................................................489
Aggiungere un campo calcolato ..................................................................................................491
Campi di Lookup ...........................................................................................................................493
Gestire i null con gli eventi dei Field ...........................................................................................495
Navigazione in un dataset ...................................................................................................................496
Il totale della colonna di una tabella ...........................................................................................496
Utilizzo dei bookmark ..................................................................................................................497
Modificare una colonna di una tabella .......................................................................................499
Personalizzare la DBGrid ....................................................................................................................499
Disegnare in una DBGrid .............................................................................................................499
Una griglia multiselezione ............................................................................................................501
Trascinamento in griglia ...............................................................................................................503
Applicazioni database senza controlli data-aware ...........................................................................503
Simulare i controlli data-aware di Delphi ...................................................................................504
Inviare richieste al database ..........................................................................................................506
Gruppi e aggregati ...............................................................................................................................507
Raggruppamento ...........................................................................................................................508
Valori aggregati ..............................................................................................................................508
Strutture master/detail .........................................................................................................................510
Relazioni master/detail con ClientDataSet ................................................................................510
Gestione degli errori sui database ......................................................................................................511
L’architettura database in Delphi 2006 ...............................................................................................512
Il supporto per Unicode ................................................................................................................512
Ed ora… ................................................................................................................................................514
Capitolo 14 Programmazione Client/Server con i componenti database della VCL ........................... 515
L’architettura Client/Server .................................................................................................................515
Elementi di progettazione di database ...............................................................................................517
Entità e relazioni ............................................................................................................................517
Dalle chiavi primarie agli OID .....................................................................................................518
Ancora regole ................................................................................................................................519
Cursori unidirezionali ...................................................................................................................520
Introduzione a InterBase .....................................................................................................................520
Usare IBConsole ............................................................................................................................522
Programmazione lato server con InterBase ...............................................................................524
La libreria dbExpress ...........................................................................................................................526
Lavorare con i cursori unidirezionali ..........................................................................................526
Piattaforme e database ..................................................................................................................527
Problemi con le versioni dei driver .............................................................................................527
I componenti dbExpress ......................................................................................................................528
Il componente SQLConnection ...................................................................................................528
I componenti dataset di dbExpress .............................................................................................531
Il componente SQLMonitor .........................................................................................................533
Dimostrazioni di dbExpress ...............................................................................................................533
Uno o più componenti ..................................................................................................................534
Accedere ai metadati con SetSchemaInfo ....................................................................................536
Una Query parametrica ................................................................................................................537
Elaborazioni a senso unico: la stampa ........................................................................................539
I pacchetti e la cache ............................................................................................................................541
Gestione degli aggiornamenti ......................................................................................................542
Aggiornare i dati ............................................................................................................................544
Utilizzo delle transazioni ..............................................................................................................546
Usare InterBase Express ......................................................................................................................548
I componenti dataset di IBX ........................................................................................................549
I componenti amministrativi di IBX ...........................................................................................550
Creare un esempio con IBX .........................................................................................................550
Creare una query live ....................................................................................................................551
Monitorare InterBase Express ......................................................................................................554
Altre informazioni di sistema ......................................................................................................555
Porzioni di un’applicazione reale ........................................................................................................556
Generatori e ID ..............................................................................................................................556
Ricerche case-insensitive ..............................................................................................................558
Gestire sedi e persone ...................................................................................................................559
Costruire l’interfaccia utente ........................................................................................................561
Programmare corsi ........................................................................................................................563
Creare una finestra di lookup .......................................................................................................566
Una form di ricerca libera ............................................................................................................567
dbExpress in Delphi 2006 ...................................................................................................................568
Database Explorer per dbExpress ................................................................................................569
Ed ora… ................................................................................................................................................570
Capitolo 15 Lavorare con ADO ........................................................................................................................ 571
MDAC (Microsoft Data Access Components) .................................................................................572
Gli OLE DB Provider ....................................................................................................................572
Usare i componenti dbGo ...................................................................................................................573
Un esempio pratico .......................................................................................................................574
Il componente ADOConnection .................................................................................................575
I file Data Link ...............................................................................................................................576
Proprietà dinamiche ......................................................................................................................576
Ottenere informazioni sui metadati ............................................................................................577
Usare il Jet Engine ...............................................................................................................................578
Accedere a tabelle Paradox attraverso Jet ...................................................................................578
Accedere a file Excel attraverso Jet ..............................................................................................579
Accedere a file di testo attraverso Jet ...........................................................................................580
Importazione ed esportazione .....................................................................................................582
Lavorare con i cursori ..........................................................................................................................583
La proprietà CursorLocation .........................................................................................................583
La proprietà CursorType ...............................................................................................................584
Combinazioni di CursorLocation e CursorType .........................................................................585
Quando manca il RecordCount ....................................................................................................585
Indici lato client .............................................................................................................................585
Clonare un dataset .........................................................................................................................586
Gestione delle transazioni ...................................................................................................................587
Transazioni annidate .....................................................................................................................588
Attributi di ADOConnection ......................................................................................................588
Tipi di lock .....................................................................................................................................589
Aggiornare i dati ..................................................................................................................................589
Batch Updates ................................................................................................................................591
Locking ottimistico ........................................................................................................................592
Risolvere i conflitti di aggiornamento .........................................................................................593
Recordset disconnessi ..........................................................................................................................594
Connection pooling ......................................................................................................................595
Recordset persistenti .....................................................................................................................596
Il modello briefcase .......................................................................................................................597
Ed ora… ................................................................................................................................................597
Capitolo 16 Usare ADO.NET .............................................................................................................................. 599
L’architettura di ADO.NET .................................................................................................................599
Lavorare in modalità connessa ...........................................................................................................600
Accesso ai dati attraverso OleDbConnection ............................................................................601
Accesso ai dati attraverso ODBC .................................................................................................603
Accesso ai dati generico tramite interfacce ................................................................................604
Lavorare in modalità disconnessa ......................................................................................................604
Uso dell’adapter OleDbDataAdapter ...........................................................................................605
Creare una DataTable a design time ...........................................................................................607
Niente dati a design time ..............................................................................................................608
I componenti data content ..................................................................................................................608
Accesso diretto ai dati di un DataSet ..........................................................................................609
Strutture master/detail nella classe DataSet ...............................................................................610
Un DataSet in XML .......................................................................................................................612
Ordinamento e filtraggio tramite DataView ..............................................................................614
Creare classi DataSet personalizzate ...........................................................................................614
Gestire la cache e le modifiche .....................................................................................................617
Confronto con il ClientDataSet ...................................................................................................618
Usare Borland Data Provider (BDP) .................................................................................................619
Configurare BDP ...........................................................................................................................619
Sviluppo visuale con BDP .............................................................................................................621
Altre caratteristiche di BDP ..........................................................................................................622
BDP Schema Services ....................................................................................................................623
Usare ADO.NET in un’applicazione VCL .........................................................................................623
Estensioni al BDP in Delphi 2006 ......................................................................................................625
Ed ora... .................................................................................................................................................625
Capitolo 17 Architetture a più livelli .............................................................................................................. 627
Fondamenti tecnici di DataSnap ........................................................................................................627
L’interfaccia IAppServer ................................................................................................................628
Il protocollo di connessione .........................................................................................................628
Trasferire dati in pacchetti ............................................................................................................629
Componenti Delphi di supporto (lato client) ............................................................................630
Componenti Delphi di supporto (lato server) ...........................................................................631
Un’applicazione di esempio .................................................................................................................631
Il primo application server ...........................................................................................................631
Il primo thin client ........................................................................................................................632
Creare un client .NET ...................................................................................................................634
Impostare regole sul server .................................................................................................................634
Regole a livello di campo o di dataset .........................................................................................634
Includere le proprietà dei campi ..................................................................................................635
Eventi dei campi e dei dataset ......................................................................................................636
Aggiungere caratteristiche lato client ................................................................................................636
La sequenza di aggiornamento ....................................................................................................636
Rinfrescare i dati ............................................................................................................................637
Caratteristiche avanzate di DataSnap ................................................................................................639
Query parametriche ......................................................................................................................639
Metodi personalizzati ....................................................................................................................639
Relazioni master/detail .................................................................................................................640
Usare il ConnectionBroker ...........................................................................................................642
Altre opzioni del provider ............................................................................................................642
Il componente SimpleObjectBroker ............................................................................................643
Object Pooling ...............................................................................................................................643
Personalizzare i pacchetti di dati .................................................................................................643
Sviluppo di applicazioni a più livelli in .NET ...................................................................................644
L’architettura di .NET Remoting ..................................................................................................644
.NET Remoting in pratica ............................................................................................................645
Remoting con ADO.NET e componenti Delphi .......................................................................647
ADO.NET Remoting in pratica ...................................................................................................648
Ed ora... .................................................................................................................................................650
Capitolo 18 Usare ECO (Enterprise Core Objects) ....................................................................................... 651
Il modello .............................................................................................................................................652
Classi ..............................................................................................................................................653
Attributi .........................................................................................................................................653
Operazioni .....................................................................................................................................654
Associazioni ...................................................................................................................................654
Attributi derivati: OCL .................................................................................................................655
Attributi derivati: codice Delphi ..................................................................................................657
Attributi derivati inversi ...............................................................................................................658
Associazioni derivate .....................................................................................................................659
Classi di associazione ....................................................................................................................659
L’ECOSpace ..........................................................................................................................................663
Persistenza .....................................................................................................................................663
Usare ECO con i database ............................................................................................................664
Creazione della struttura del database ........................................................................................664
Locking ottimistico ........................................................................................................................665
Interfaccia utente .................................................................................................................................667
Handle ............................................................................................................................................667
ReferenceHandle ............................................................................................................................668
ExpressionHandle ..........................................................................................................................668
Data binding ..................................................................................................................................669
CurrencyManagerHandle .............................................................................................................669
OCLPSHandle ...............................................................................................................................670
Variabili ..........................................................................................................................................672
Scrivere codice in ECO ........................................................................................................................676
Creare un oggetto, parte 1 ............................................................................................................676
Ottenere un riferimento all’oggetto corrente .............................................................................676
Creare un oggetto, parte 2 ............................................................................................................676
Valutazione di espressioni OCL da codice .................................................................................677
ECO III in Delphi 2006 .......................................................................................................................678
Ed ora... .................................................................................................................................................678
Parte IV Delphi e Internet
Capitolo 19 Sviluppo HTML e HTTP ............................................................................................................... 683
Creare applicazioni con i socket .........................................................................................................683
Fondamenti di programmazione con i socket ...........................................................................684
Usare i componenti TCP di Indy .......................................................................................................685
Lavorare con HTTP .............................................................................................................................690
Catturare contenuti HTTP con il componente IdHTTP ..........................................................691
La API WinInet (Win32) ..............................................................................................................697
La classe WebClient della FCL (.NET) .......................................................................................698
Un semplice server HTTP ............................................................................................................699
Generare pagine HTML ......................................................................................................................700
I componenti Delphi per la produzione di pagine HTML .......................................................700
Produrre pagine HTML ................................................................................................................701
Produrre pagine di dati .................................................................................................................703
Produrre tabelle HTML ................................................................................................................703
Usare gli Style Sheet .......................................................................................................................705
Pagine dinamiche da un server personalizzato .........................................................................706
Pagine Web dinamiche ........................................................................................................................707
Panoramica su CGI .......................................................................................................................707
Librerie dinamiche ........................................................................................................................709
La tecnologia WebBroker di Delphi ...................................................................................................709
Debug con il Web App Debugger ................................................................................................711
Creare un WebModule multifunzionale .....................................................................................713
Creazione dinamica di report da database .................................................................................715
Lavorare con Apache .....................................................................................................................720
Lavorare con IIS .............................................................................................................................721
Esempi pratici ......................................................................................................................................723
Un contatore di contatti grafico per siti Web .............................................................................723
Ricerca con un motore di ricerca Web ........................................................................................725
Indy 10 in Delphi 2006 ........................................................................................................................726
Ed ora... .................................................................................................................................................727
Capitolo 20 WebSnap e IntraWeb ................................................................................................................... 729
WebSnap ...............................................................................................................................................729
Gestire più pagine ..........................................................................................................................732
Script lato server ............................................................................................................................733
Gli adapter .....................................................................................................................................736
Individuare i file .............................................................................................................................739
Usare il DataSetAdapter ......................................................................................................................740
Un’interfaccia Web per il DataSetAdapter ..................................................................................740
Modificare i dati in una form .......................................................................................................742
Relazioni master/detail in WebSnap ...........................................................................................744
Sessioni, utenti e permessi in WebSnap ............................................................................................745
Usare le sessioni .............................................................................................................................745
Effettuare un login .........................................................................................................................747
IntraWeb ...............................................................................................................................................748
Dai siti Web alle applicazioni Web ..............................................................................................749
Un primo sguardo dietro le quinte ..............................................................................................751
Il codice sorgente dell’applicazione IntraWeb ............................................................................753
Creare la versione Delphi per .NET di IWSimpleApp ..............................................................753
Architetture IntraWeb ...................................................................................................................754
Creare applicazioni IntraWeb .............................................................................................................754
Scrivere applicazioni multi-pagina ..............................................................................................756
Gestione delle sessioni ..................................................................................................................760
Integrazione con WebBroker (e WebSnap) ................................................................................761
Controllare il layout .......................................................................................................................762
Applicazioni web basate su database .................................................................................................764
Mostrare collegamenti ai dati di dettaglio ..................................................................................765
Trasferire i dati sul lato client .......................................................................................................767
Il Deployment Manager di Delphi 2005 ............................................................................................769
IntraWeb 8 in Delphi 2006 ..................................................................................................................770
Ed ora... .................................................................................................................................................771
Capitolo 21 L’architettura ASP.NET ................................................................................................................. 773
Fondamenti di ASP.NET .....................................................................................................................773
ASP.NET e i server Web ................................................................................................................773
Una pagina vuota in Delphi .........................................................................................................775
La tecnologia dello scripting ........................................................................................................776
Capire il funzionamento della modalità code behind ..............................................................778
La gestione dello stato ...................................................................................................................779
Creazione di pagine ASP.NET ............................................................................................................780
La classe Control ............................................................................................................................780
I controlli HTML (HtmlControls) ..............................................................................................783
I controlli Web (WebControls) ....................................................................................................783
La classe Page ................................................................................................................................784
Convalida del contenuto dei controlli .........................................................................................787
Accesso ai dati in ASP.NET .................................................................................................................789
Lavorare con i database .................................................................................................................790
I componenti Borland DBWeb ....................................................................................................795
Creare applicazioni ASP.NET .............................................................................................................801
Trasferire informazioni tra le pagine ..........................................................................................801
Gestione delle sessioni ..................................................................................................................802
Autenticazione per mezzo di form ..............................................................................................803
Caching in ASP.NET .....................................................................................................................803
Installazione delle applicazioni ASP.NET ...................................................................................804
ASP.NET in Delphi 2006 .....................................................................................................................805
Ed ora... .................................................................................................................................................805
Capitolo 22 Tecnologie XML ............................................................................................................................ 807
Introduzione a XML ............................................................................................................................807
Sintassi XML di base .....................................................................................................................808
XML ben formato ..........................................................................................................................809
Lavorare con XML .........................................................................................................................809
Gestione dei documenti XML in Delphi ....................................................................................811
Programmazione DOM .......................................................................................................................811
Un documento XML in un TreeView .........................................................................................812
Usare il componente XMLDocument in .NET ..........................................................................814
Creazione di documenti attraverso il DOM ..............................................................................815
Interfacce per il Data Binding XML ............................................................................................818
Usare il DOM XML nativo in .NET ............................................................................................821
Parsing di documenti XML .................................................................................................................822
Usare la API SAX ...........................................................................................................................822
Parsing di documenti XML in .NET ...........................................................................................825
Usare XSLT ...........................................................................................................................................826
Usare XPath ...................................................................................................................................827
XSLT in pratica ..............................................................................................................................827
XSLT con WebSnap .......................................................................................................................828
Trasformazioni XSL dirette via DOM .........................................................................................829
XSLT in ASP.NET ..........................................................................................................................830
Elaborare documenti XML voluminosi ............................................................................................833
Da un ClientDataSet a un documento XML ..............................................................................834
Da un documento XML a un ClientDataSet ..............................................................................834
Ed ora... .................................................................................................................................................835
Capitolo 23 Web Service e SOAP .................................................................................................................... 837
Tecnologie legate ai Web Service ........................................................................................................837
Il supporto a SOAP in Delphi per Win32 .........................................................................................838
Un client SOAP per quotazioni di Borsa ....................................................................................838
Creare un Web Service in Delphi per Win32 .............................................................................841
Debug delle intestazioni SOAP ....................................................................................................844
Esporre una classe esistente come Web Service .........................................................................845
L’architettura REST in Delphi .............................................................................................................846
Tecnologie REST lato client ..........................................................................................................846
Creare un server REST ..................................................................................................................847
Un client per il server REST .........................................................................................................849
Web Service in .NET ............................................................................................................................849
Un client per un Web Service in .NET ........................................................................................850
Creare un server in .NET ..............................................................................................................852
Dati da un database attraverso SOAP ................................................................................................854
Accedere ai dati ..............................................................................................................................854
Passaggio di documenti XML ......................................................................................................855
Il programma client (con XSLT e un ClientDataSet) ................................................................856
DataSnap su SOAP ........................................................................................................................858
Gestione degli allegati ...................................................................................................................860
Ed ora… ................................................................................................................................................862
Appendici
Appendice A Imparare i fondamenti di Delphi .............................................................................................. 867
Essential Pascal ....................................................................................................................................867
Essential Delphi ...................................................................................................................................868
Delphi Power Book ..............................................................................................................................868
Appendice B Strumenti aggiuntivi per Delphi .............................................................................................. 871
Strumenti sviluppati dall’autore .........................................................................................................871
I Wizard CanTools ...............................................................................................................................871
L’Object Debugger .........................................................................................................................872
Memory Snap ................................................................................................................................872
Altri importanti strumenti gratuiti ....................................................................................................873
Project JEDI ...................................................................................................................................873
GExperts ......................................................................................................................................873
InstantObjects ...............................................................................................................................873
Indice analitico ...................................................................................................................................................... 875
|
|
|
|