Borland Delphi 5
Doba uvedení nové verze vývojového nástroje Delphi firmy Inprise na trh se neodvratně blíží, proto se podívejme na nové vlastnosti a vylepšení, které Delphi 5 přináší. Tento článek vychází z beta verze Delphi 5, a lze tudíž předpokládat, že v “ostré” verzi bude něco ještě poněkud jinak.

Poodhrňme roušku

Mezi nejvýraznější vylepšení Delphi patří alternativní přístup k datovým zdrojům bez potřeby BDE prostřednictvím nové ADO komponenty a nové komponenty pro nativní přístup na databázový server InterBase. Nový, hierarchický pohled na databázové komponenty a zejména možnost vytváření přehledných datových diagramů usnadní všem uživatelům orientaci v datových modulech. Pro vývoj víceúrovňových aplikací přináší novou kvalitu přepracovaná technologie MIDAS, nyní i s připraveným rozhraním pro internetové aplikace využívajícím přenosový protokol HTTP. Další novou podporou internetových technologií v Delphi 5 je možnost vytváření zvláštního typu objektů ActiveX, které lze používat v rámci ASP stránek. Z hlediska samotného vývojového prostředí došlo k vylepšení prostředků pro ladění vyvíjených aplikací, přibyly nové podpůrné nástroje pro lokalizaci, skupinovou práci na projektu a správu seznamu zamýšlených činností na projektu. A pochopitelně jako s každou novou verzí Delphi došlo k vylepšení a rozšíření knihovny vizuálních komponent VCL a s ní i k možnosti vizuálního návrhu aplikací.

Komponenty pro přístup k datům technologií ADO
Delphi 5 obsahuje nové komponenty, umožňující přístup k datům s využitím technologie ActiveX Data Objects (ADO) firmy Microsoft. ADO představuje vysokoúrovňové rozhraní pro přístup ke všem druhům dat. Data mohou pocházet z libovolných datových zdrojů, které zahrnují relační i nerelační databáze, elektronickou poštu, systém souborů, text, grafiku či uživatelské objekty. Obzvláště výhodný je tento typ přístupu pro databáze, jimž je technologie ADO vlastní, tedy např. pro Microsoft SQL Server 7.0. Nové komponenty, poskytující přístup k datům prostřednictvím ADO, lze používat se stávajícími komponentami pro vizuální prezentaci dat (např. TDBEdit, TDBGrid), aniž by byl zapotřebí databázový stroj BDE. Při použití těchto komponent je pochopitelně nezbytná instalace ADO/OLE DB prostředí na cílovém počítači. 
V paletě komponent najdeme pro práci s technologií ADO následující komponenty – TADOConnection, která poskytuje připojení k libovolnému datovému ADO zdroji, TADOTable, TADOQuery a TADOStoredProc, které plní obdobnou funkci jako komponenty TTable, TQuery a TStoredProc při použití BDE, dále komponentu TADODataSet, která reprezentuje datovou množinu vrácenou z datového ADO zdroje a kterou lze alternativně použít k předchozím třem komponentám, a konečně komponentu TADOCommand pro realizaci příkazů, které nevracejí datové množiny (typicky pro vykonání příkazů souvisejících s definicí datových struktur). V návaznosti na možnosti těchto komponent byly přidány nové typy polí pro přístup k datovým typům podporovaným v technologii ADO – jedná se o typy TWideStringField, TGUIDField, TVariantField, TInterfaceObject a TIDispatchField.

Komponenty pro přímý přístup do InterBase 
Do palety komponent byla přidána nová záložka InterBase, která obsahuje komponenty pro přímý přístup do databáze InterBase. I tyto komponenty umožňují práci s databázovým serverem bez potřeby BDE. Distribuce vyvíjených aplikací se tak výrazně usnadní. 
K dispozici jsou analogické komponenty jako pro přístup k databázím přes BDE, tedy TIBDatabase, TIBTable, TIBQuery, TIBStoredProcedure, TIBUpdateSQL a TIBDataSource. Dále zde najdeme komponenty TIBTransaction pro transakční řízení databázových připojení, TIBDataset, optimalizovanou pro databázové dotazy s použitím SQL příkazu SELECT, TIBSQL, zamýšlenou pro vykonávání SQL příkazů, které nevracejí datovou množinu, TIBDatabaseInfo pro získání informací o připojeném databázovém serveru, dále komponentu TIBSQLMonitor pro monitorování SQL příkazů zasílaných na server a konečně komponentu TIBEvents pro zpracování událostí vznikajících na databázovém serveru.

Návrhář datových modulů
Je to nový vizuální nástroj usnadňující vytváření a údržbu datových modulů. Zahrnuje následující tři pohledy na datové struktury: komponentní pohled, hierarchický pohled a datový diagram. Komponentní pohled zobrazuje komponenty pro přístup k datům v tradiční formě, jak ji známe ze stávajících verzí Delphi. Hierarchický pohled zase přehledně zobrazuje jednotlivé komponenty podle vztahu rodič – potomek či podle logické návaznosti prvků datového modulu. Pro základní datové komponenty je hierarchická návaznost následující: TSession – TDatabase – TTable, TQuery – TDataset, TField. Panel hierarchického pohledu je samozřejmě aktivní a umožňuje přesouvání jednotlivých položek přetažením myší. Lze tak například z palety komponent vybrat komponentu TDataSource a umístit ji přímo do hierarchie komponent na prvek TTable. Tato komponenta tak získá vlastnost dataset a zařadí se automaticky na požadované místo do hierarchie. Pro každý prvek je rovněž k dispozici kontextové menu, umožňující výběr akcí specifických pro daný prvek.
Datový diagram představuje velmi užitečný dokumentační nástroj, zvyšující přehlednost a orientaci v datovém modulu. Umožňuje v grafické podobě znázornit a vytvářet vztahy mezi datovými množinami. Primárním modelovaným vztahem je vztah 1 : N (master-detail), při jehož definici dochází k vytvoření nezbytné komponenty TDataSource a nastavení příslušných vlastností podřízené datové množiny. Dále lze modelovat vztah dohledávání (look-up), kdy jedna datová množina obsahuje virtuální pole, jehož hodnoty jsou dynamicky dohledávány v jiné datové množině (tzv. lookup fields). Součástí datového diagramu mohou být i libovolné textové popisy zvyšující vypovídací schopnost schématu. Obrázek znázorňuje jednoduchý datový diagram se třemi vztahy 1 : N a jedním “dohledávacím” vztahem.

Seznamy plánovaných činností na projektu
K novým vlastnostem Delphi patří i vedení seznamu činností souvisejících s projektem (tzv. To-Do List). Vývojář může do tohoto seznamu vkládat popis úkolů a u každé činnosti specifikovat prioritu (od 1 do 5), případně modul, ke kterému se vztahuje, kategorii a osobu zodpovědnou za realizaci úkolu. Splnění činnosti pak vývojář indikuje zaškrtnutím políčka u příslušné položky v seznamu. K dispozici jsou samozřejmě různé druhy třídění záznamů v seznamu a filtry podle modulu, zodpovědné osoby a podle kategorie. 

Rozšíření technologie MIDAS
Technologie MIDAS (Multi-tier Distributed Application Services) představuje soubor mechanismů pro přenos databázových informací mezi klientem a aplikačním serverem ve tří- a vícevrstvé architektuře. MIDAS je součástí Delphi již od verze 3 a po významných rozšířeních v předchozí verzi dochází k jeho dalšímu rozvoji i v Delphi 5. Tato progresivní technologie si u vývojářů získává stále větší oblibu také díky změněné obchodní politice pro licencování firmy Inprise. Díky změně architektury dnes MIDAS umožňuje vytváření bezstavových vzdálených datových modulů a webových klientů. Nyní lze psát MTS servery a sdílené vzdálené datové moduly bez vytváření vlastních uživatelských rozhraní. Nová architektura rovněž zvyšuje výkonnost vytvářené aplikace redukcí přenosu zpráv. Každé klientské volání obsahuje oproti předchozím verzím MIDAS více informací, a je proto třeba menší počet volání. Nová rozhraní zjednodušují přenos pro aplikaci specifických informací při každém klientském požadavku na aplikační server.
Ke stávajícím čtyřem nosným protokolům, které MIDAS může používat (tj. Sockets, DCOM, CORBA a OLE Enterprise), nyní přibyl ještě protokol HTTP. Díky němu lze vytvořit MIDAS spojení i přes firewall a využívat bezpečnosti protokolu SSL. Pro vytváření lehkých MIDAS klientů provozovaných v internetovém prohlížeči slouží nové komponenty v paletě komponent v záložce Web Midas. Pro vytváření těchto klientů pro vícevrstvé databázové aplikace je třeba nahradit klasický klient MIDAS speciální komponentou, která pracuje jako klient aplikačního MIDAS serveru a současně jako webový modul, který je volán z WWW serveru a podle požadavku uživatelů dynamicky generuje příslušné HTML stránky pro komunikaci s klientem.

Rozšíření v oblasti technologie ActiveX 
COM servery lze v Delphi 5 nainstalovat jako komponenty do palety komponent a používat je při vizuálním návrhu. V paletě komponent se objevila nová záložka Servers, která obsahuje komponenty reprezentující řadu používaných COM serverů z kancelářského balíku Microsoft Office. Tyto komponenty přispívají k snadné integraci vyvíjených programů s textovým editorem MS Word, tabulkovým procesorem MS Excel a dalšími kancelářskými aplikacemi. Další významnou novinkou na poli ActiveX je možnost vytváření nového typu objektů, které je možné vyvolávat z ASP stránek na IIS serveru a které mají přístup k rozhraním reprezentujícím požadavek uživatele, výslednou odezvu apod. 

Rozšíření knihovny vizuálních komponent VCL
Rozšíření objektové hierarchie Delphi zahrnuje dílčí vylepšení existujících komponent, nové ADO komponenty, rozšíření pro internetové aplikace a řadu dalších nových vlastností. Modifikací doznala komponenta TListView, THeaderControl a TCheckListBox. Při vytváření internetových modulů lze přiřadit na úrovni akce modulu (tj. na instanci třídy TWebActionItem) objekt, který formátuje výsledný HTML kód, a Delphi automaticky zajistí přiřazení tohoto kódu obsahu návratové zprávy, která se posílá prohlížeči klientu. Objekt TDatabase nyní umožňuje spuštění SQL příkazu pomocí nové metody Execute, čímž odpadá nutnost k tomuto účelu používat samostatné komponenty třídy TQuery. Databázové komponenty TTable a TQuery mají vlastnost AutoRefresh. Pokud je nastavena na hodnotu true, potom při potvrzení změn záznamu metodou post dochází k automatickému načtení implicitních (default) a autoinkrementálních hodnot polí z příslušné databáze, a není tudíž třeba volat metodu Refresh. Z důvodu rozšiřování možností technologie MIDAS byla přidána komponenta TWebConnection pro přenos databázových informací protokolem HTTP. Nová komponenta TWebBrowser umožňuje vložit stranu prohlížeče Microsoft Internet Explorer do vytvářené aplikace. Třída TApplication byla rozšířena o vlastnosti BiDIKeyboard a NonBiDiKeyboard, které umožňují uživateli určit rozvržení klávesnice. Delphi 5 rovněž zahrnuje zdrojový kód ke komponentám souvisejícím s rozhodovací krychlí (decision cube), který součástí předchozích verzí nebyl. Poté, co Delphi 4 umožnilo podporu vytváření NT služeb, přichází Delphi 5 s další podporou vytváření systémových programů, tentokrát se jedná o aplikace zobrazované jako applety v ovládacím panelu systému Windows. K tomuto účelu byly vytvořeny dvě třídy – TAppletApplication a TAppletModule.

Rámce
Rámec (frame) je speciální typ formuláře, který může být vložen do jiného formuláře či rámce. Rámce se vytvářejí vizuálně obdobným způsobem jako formuláře v samostatných knihovnách. Pokud chceme rámec vložit do jiného formuláře, vybereme z palety komponent komponentu označenou jako frames a umístíme ji na plochu formuláře. Delphi nám následně umožní vybrat si ze seznamu dostupných rámců, resp. potomků třídy TFrame a na formulář se vykreslí námi vybraný rámec. Do tohoto rámce pak můžeme přidávat další komponenty a v inspektoru objektů měnit vlastnosti všech komponent v rámci obsažených. Jedinou nepovolenou operací je rušení komponent deklarovaných v původním rámci. Hlavním rozdílem mezi původními a nově přidanými komponentami do rámce je jejich vlastník (tj. vlastnost Owner). Zatímco původní komponenty deklarované v rámci mají jako vlastníka objekt rámce, je u dodatečně přidaných komponent jejich vlastníkem objekt formuláře.

Uživatelské nastavení pracovní plochy
Delphi 5 umožňuje po vytvoření vlastního uspořádání pracovní plochy jeho pojmenování a uložení pod symbolickým jménem. Obnovení uloženého nastavení se provádí prostým výběrem jména nastavení z kombinovaného seznamu v paletě nástrojů. Jedno z uložených nastavení plochy lze také určit pouze pro účely ladění vyvíjených aplikací. Toto nastavení se automaticky aktivuje při spuštění aplikace a po jejím ukončení se nastavení plochy opět změní na původní.

Vylepšení inspektoru objektů
Všechny položky nabízené v inspektoru objektů mohou být nyní volitelně zobrazovány nejen v abecedním pořadí, ale i podle logických kategorií, do kterých jsou vlastnosti objektu sdruženy. Jedna položka přitom může být zobrazena i ve více kategoriích, např. souřadnice umístění komponenty na ploše najdeme v kategoriích Layout, Localizable a Visual. Podle jednotlivých kategorií lze také položky v inspektoru objektů filtrovat a z narůstajícího počtu vlastností objektu zobrazovat pouze ty, se kterými rutinně pracujeme (např. můžeme zakázat zobrazování kategorie Locale, v níž zařazené vlastnosti nemají v našich zeměpisných šířkách velké použití). Dalším vylepšením inspektoru objektů je zobrazování obrázků v rozbalovacích seznamech u jednotlivých vlastností. Tak při výběru typu kurzoru nyní v rozbaleném seznamu uvidíme nejen symbolická jména tvaru kurzoru, ale i příslušný obrázek. Obdobně při přiřazení ikony z komponenty TImageList konkrétní vizuální komponentě nemusíme již zadávat číselnou hodnotu ImageIndex, ale můžeme si požadovaný obrázek vybrat přímo z rozbaleného seznamu.

Nové možnosti ladění aplikací
Delphi 5 nabízí nové pomocné okno pro ladění, zvané FPU, které umožňuje prohlížení obsahu jednotky procesoru pro práci s plovoucí desetinnou čárkou. Okno FPU zobrazuje hodnoty registrů, stavy a informace o operacích MMX a o operacích s plovoucí desetinnou čárkou. Další vylepšení zaznamenala koncepce bodů přerušení (breakpoints). Lze je nově sdružovat do skupin a následně provádět aktivaci a deaktivaci všech těchto bodů ve skupině jedním příkazem. Informace o zvolených vlastnostech bodu přerušení (tj. podmínka přerušení, požadovaný počet průchodů a skupina, ke které bod patří) jsou dostupné nejen z okna seznamu bodů přerušení, ale i přímo z vývojového prostředí, po nastavení kurzoru myši na kruhový symbol bodu přerušení v editoru zdrojového kódu.
V záložce menu Run najdeme dvě nové akce – příkaz Attach to Process, který umožňuje ladit proces spuštěný mimo vývojové prostředí Delphi, a příkaz Run Until Return, který při ladění funkce spustí provádění programu až do místa návratu na nadřazenou funkci, která laděnou funkci zavolala.

Nový prohlížeč projektu
Nový prohlížeč projektu (project browser) umožňuje procházet všechny deklarace používané v aplikaci. K dispozici jsou tři základní náhledy – Globals, zobrazující všechny globálně dostupné deklarace seskupené podle typů, Classes, hierarchický diagram deklarovaných tříd založený na vztahu dědičnosti od základní třídy Tobject, a Units, zobrazující jednotlivé symboly podle jejich příslušnosti k modulům. K symbolům se dále na pravé straně prohlížeče zobrazují doplňující informace. U prohlížeče můžeme nastavit, zda se mají zobrazovat pouze symboly deklarované v rámci projektu (to je implicitní nastavení), či zda má prohlížeč zahrnout i všechny dostupné symboly z Visual Component Library.

Změna formy ukládání dat formulářů
Soubory s popisem formulářů (s příponou dfm) jsou nyní standardně ukládány jako prostý text. Toto nastavení lze měnit a používat jako dosud binární tvar uložení dfm souborů.

Nástroje pro lokalizaci
Součástí Delphi 5 je i sada nástrojů zvaná Integrated Translation Environment (ITE), jejímž cílem je zjednodušení lokalizace vyvíjených aplikací a souběžného vývoje pro různé cílové lokality. ITE je integrováno s vývojovým prostředím Delphi a umožňuje správu více lokalizovaných verzí aplikace jako části jednoho projektu. Zahrnuje následující tři nástroje – Translation Manager pro editaci překládaných textů, Translation Repository, který představuje centrální databázi pro překlady, které mohou být sdíleny více projekty a různými vývojáři, a konečně nástroj Resource DLL Wizard, který pomáhá generovat a spravovat dynamické knihovny se zdroji.

TeamSource
TeamSource je novým nástrojem pro řízení paralelních prací na projektu a řízení oběhu dokumentů mezi členy vývojového týmu. TeamSource používá pro archivaci a aktualizaci sdílených souborů systém pro řízení verzí (typicky integrovaný PVCS firmy Intersolv), ale ve funkčnosti jde dále a plně řídí a koordinuje proces používání paralelního modelu řízení zdrojů.
Jak je vidět, inovacemi Borland u páté verze svého vývojářského hitu Delphi skutečně nešetřil. Přejme si jen, aby se vše podařilo včas dotáhnout i do “vítězného konce” a vývojáři měli opět na co šetřit...
Jindřich Zelený