Borland Delphi 4 | ||||||
di Pino Navato | ||||||
L'ambiente di sviluppo della Inprise (ex Borland) è giunto alla quarta versione. L'azienda produttrice ha cambiato nome per evidenziare il fatto che ora si rivolge soprattutto al mercato enterprise, tuttavia accanto al nome di Delphi è stato mantenuto il marchio che lo ha reso famoso: Borland. Anche la v4 di Delphi è disponibile
in diversi allestimenti, Standard, Professional e Client/Server per meglio
venire incontro alle esigenze di diversi tipi di utenti; a questi si aggiungerà
il Delphi Enterprise, spesso citato nei manuali ma ancora assente nel sito
del produttore.
Il CD nel quale viene distribuito
il prodotto contiene 547 MB di dati. La funzione autorun ci presenta
una finestra dalla quale è possibile avviare l'installazione di
3 diversi software: l'ambiente di sviluppo, l'InstallShield Express 2.02
(ovvero il generatore di installazioni, qui in versione custom,
cioè ridotta, per Delphi 4) e il Local InterBase 5.1.1
(una versione ridotta del server SQL leggero ed efficiente dell'Imprise).
L'IDE è stato oggetto di interessanti
modifiche. Innanzi tutto ci sono il nuovo Code Explorer e le funzioni Module
Navigation e Code Browsing che permettono di spostarsi all'interno del
codice con una facilità senza precedenti. Il Code Explorer è
un treeview che appare accanto alla classica finestra per l'editing del
sorgente (vedi figura); Sempre
per quanto riguarda l'editing, c'è da dire che le le funzioni di
Code Insight sono state ampliate con l'aggiunta di Tooltip Symbol Insight
e di Class Completion. Ogni volta che il mouse si ferma su un identificatore
nel'editor o su un componente in una form, Tooltip Symbol Insight visualizza
un piccolo hint contenente la dichiarazione di quell'elemento (vedi figura). type TMyButton = class(TButton) public property Size: Integer; end; e premendo semplicemente Ctrl-Shift-C, Delphi lo completa in questo modo: type TMyButton = class(TButton) private FSize: Integer; procedure SetSize(const Value: Integer); public property Size: Integer read FSize write SetSize; end; ed inoltre aggiunge questo codice nella sezione implementation: { TMyButton } procedure TMyButton.SetSize(const Value: Integer); begin FSize := Value; end; Ma le novità non sono finite: nell'elenco dobbiamo ancora annotare il fatto che tutte le finestre sono ora dockable e quindi l'ambiente può essere personalizzato con una libertà prima impensabile; inoltre il project manager adesso può gestire un intero gruppo di progetti correlati (ad esempio un eseguibile e le sue DLL). Un discorso a parte lo merita il
debugger integrato poiché le novità sono veramente numerose.
E' stato aggiunto il supporto per il debugging multi-processo mediante
un potenziamento delle finestre Module View e Thread View che sono diventate
multi-process aware.
E' ora disponibile una finestra Inspector che permette di analizzare e
modificare lo stato di qualsiasi oggetto; abbiamo inoltre una finestra
Event Log che fornisce un resoconto di tutti gli eventi notevoli (messaggi,
caricamento e scaricamento di moduli, eccezioni e breakpoint); una finestra
CPU e una per l'ispezione delle variabili locali. La finestra Module View
è ora divisa in tre parti ed elenca, oltre ai nomi dei moduli, anche
i file sorgenti per il modulo selezionato e i nomi delle routine esportate.
Una novità di notevole interesse
è costituita dagli array dinamici che, in quanto tali, possono essere
ridimensionati a piacere e possono anche essere di forma non rettangolare.
Pensate, ad esempio, ad una matrice con una colonna molto più lunga
delle altre e avrete subito un'idea del risparmio di memoria a costo zero. Altre due novità sono l'overloading dei metodi e i parametri di default, caratteristiche da sempre presenti nel C++ e in Java ma finora estranee al Pascal. L'overloading, in particolare, consiste nella possibilità di dichiarare più metodi con lo stesso nome a condizione che l'elenco dei parametri sia diverso. Un'altra innovazione, più elementare ma non meno interessante, è l'introduzione di nuovi tipi di dato. Finalmente fa la sua comparsa il tipo LongWord (un intero senza segno a 32 bit) atteso da anni per sanare quella curiosa asimmetria tipica del Pascal in cui gli interi a 32 bit erano disponibili soltanto in versione signed mentre quelli a 8 e a 16 bit esistevano anche in versione unsigned. Insieme al tipo LongWord compaiono gli interi a 64 bit, ma solo in versione signed: sì, un'altra asimmetria che speriamo venga sanata in tempi più brevi. Infine un'ultima novità, più sofisticata, tanto che non è opportuno approfondirla in questa sede, è la possibilità di delegare l'implementazione di un'interfaccia ad una proprietà di una classe.
La Visual Component Library di Delphi 4
(la grossa gerarchia di classi su cui si basa la programmazione in Delphi)
è stata ulteriormente arricchita. Le classi TControl e TWinControl
sono state modificate per implementare il docking, inoltre TControl ha
due nuove proprietà molto utili: Anchors e Constrains che intervengono
quando una form viene ridimensionata.
Sul versante DBMS la maggior parte delle innovazioni è confinata nella versione Client/Server che implementa il supporto per MIDAS, CORBA, MTS, Oracle 8 ed Informix 9: si tratta certamente delle novità più importanti per quei professionisti che sviluppano applicazioni di grosso calibro. Nella versione Professional, invece, le novità di rilievo sono il supporto per Access 97 e la possibilità di creare, rinominare e cancellare tabelle direttamente dal form designer. Per quanto riguarda l'internazionalizzazione delle applicazioni, fa la sua comparsa un utile Resource DLL Wizard che esamina un progetto e genera tutti i file necessari per la creazione di una DLL contenente quelle risorse che devono essere modificate in base alla lingua del programma. Le form di questa DLL possono poi essere editate (e quindi tradotte) nell'IDE anche senza il codice sorgente mentre per le risorse di tipo stringa è stato creato un nuovo editor apposito. Peccato che questa stessa versatilità non sia riscontrabile nella Custom Edition dell'InstallShield Express che supporta solo l'inglese e quindi per avere le altre lingue, o anche solo l'italiano, bisogna rimettere mano al portafogli. Tra i miglioramenti riguardanti ActiveX citiamo il supporto per il formato TypeLib 2 e un wizard per la creazione di oggetti COM, inoltre l'Automation wizard fornisce il supporto opzionale per la gestione degli eventi.
La copia del prodotto giunta in redazione
era priva di manuali cartacei e quindi abbiamo concentrato la nostra attenzione
su quelli in lingua inglese contenuti nel CD. Si tratta di 3 volumi intitolati
Quick Start (72 pagine), Object Pascal Language Guide (236 pagine), e Developer's
Guide (968 pagine); oltre a questi ci sono i manuali di InterBase (5 volumi
per un totale di 1464 pagine).
Da notare che alcuni capitoli fanno
riferimento a caratteristiche disponibili solo nella versione Client/Server
di Delphi, giusto per far venire l'acquolina in bocca a chi ha comprato
una versione più economica del prodotto. L'help on line è molto più
ricco dei manuali, e infatti questi ultimi rimandano in varie occasioni
all'help per gli approfondimenti. E' ormai lontano il tempo in cui gli
help si limitavano a dire "Ulteriori informazioni a pagina X del manuale"!
Sui siti Inprise in Italia e in America sono presenti numerose pagine dedicate a Delphi; qui di seguito vi propongo i link a quelle che mi sembrano più importanti.
|