Kdyº jsem p²ed rokem dostal do rukou verzi 4, první nadτení z ²ady nov∞ch moºností vyprchávalo stejn╪ rychle, jako pr∞τtil od firmy Inprise pramen oprav této verze. Pomalu se dostává do ºivota pravidlo sud∞ch a lich∞ch verzí Delphi - zatímco se sud∞mi verzemi jsou problémy anebo neb∞vají zcela dotaºené, liché se jeví v∞borné. Nechci p²edbíhat dobu, t²eba se za pár dnà ukáºe p²edpoklad jako neoprávn╪n∞. Zatím to vypadá, ºe se v∞vojá²i firmy Inprise tentokrát velmi snaºili vyst²íhat problémà s p²edchozí verzí a "ƒíslo 5" bude tezi podporovat.
¼íslo 5 ºije, a má se k sv╪tu!
Krátce p²ed p²íchodem verze 5 se objevil v Chipu (viz Poodhrσme rouτku, Chip 8/99, str. 98.) pom╪rn╪ podrobn∞ popis jejích novinek a zm╪n, vycházející z "beta" verze. Od verze beta k verzi oficiální se v╪tτinou uº nic zásadního nezm╪ní a stejn╪ tak je tomu i tentokrát. A tak pro mne vznikla otázka, ƒemu vlastn╪ tuto recenzi v╪novat.
Lze konstatovat, ºe tato verze neobsahuje tolik v∞razn╪ nov∞ch v╪cí jako verze p²edchozí. Akcent byl v této verzi kladen na skuteƒn╪ znaƒné vylepτení komfortu vτech programátorsk∞ch prost²edkà s dàrazem na vysokou produktivitu v∞voje programu. Co povaºuji za nejdàleºit╪jτí, je fakt, ºe se podstatn╪ zlepτila stabilita produktu.
V záv╪ru loσské recenze verze 4 jsem kritizoval to, ºe její auto²i nevyuºívají ohromn∞ potenciál inspirace, kter∞ hlavn╪ na internetu nabízí t²etí strana - jednotliví v∞vojá²i a firmy pouºívající Delphi a vyvíjející vlastní komponenty, t²ídy, aplikace a experty. Tuto v∞tku mohu dnes s klidn∞m sv╪domím τkrtnout a konstatovat, ºe ²ada nám╪tà byla skuteƒn╪ akceptována a vt╪lena do VCL i IDE. Navíc je produkt distribuován s dalτím CD, obsahujícím mnoºství produktà t²etích stran, od jednotliv∞ch komponent aº po celé (velmi bohaté) kolekce ve form╪ freewaru, sharewaru i demoproduktà.
Namísto opakování toho, co je vτe nového, podívejme se na n╪které z novinek trochu podrobn╪ji a pokusme se zamyslet, kam Delphi sp╪je.
Body p²eruτení
V ladicím systému je n╪kolik v∞znamn∞ch vylepτení. Pokud klepnete prav∞m tlaƒítkem na oznaƒení bodu p²eruτení (puntík na levém okraji editaƒního okna) a v kontextovém menu zvolíte "breakpoint properties", nabídne se vám okno s obdobn∞m nastavením jako v p²edchozí verzi, ale tlaƒítkem "advandced" màºete okno (viz obr. 1) rozτí²it o nastavení akcí, které chcete p²i p²eruτení provést. Màºete nastavit ƒi potlaƒit p²eruτení p²i v∞poƒtu, màºete zadat zprávu, kterou chcete vypsat do logu p²i pràchodu bodem p²eruτení, a nakonec lze vypsat i hodnotu zadaného v∞razu. V logu (menu View/Debug windows/Event log) lze pak vyhledat (viz obr. 2) p²ísluτné zprávy a hodnoty.
V okn╪ na obr. 1 lze dále seskupit body p²eruτení do skupin tak, ºe do poloºky "Group" zapíτeme nebo z nabídnutého seznamu vyberete název skupiny, do níº má b∞t bod p²eruτení za²azen. V pràb╪hu lad╪ní pak mohou b∞t skupiny zapínány a vypínány podle konkrétní situace (poloºky "Enable group" a "Disable group").
Smysl je z²ejm∞ - pokud ladíte n╪kolik oblastí problémà, màºete definovat vτechny pot²ebné kroky a pak je podle pot²eby p²epínat.
Komplexní p²ehled o úplném nastavení vτech bodà p²eruτení pak získáte z menu View/Debug windows/Breakpoints - viz obr. 3.
Informaci o nastavení jednotliv∞ch bodà p²eruτení màºete získat nov╪ i v editaƒním okn╪. Podobn╪ jako se objeví hodnota prom╪nné b╪hem lad╪ní p²i umíst╪ní kurzoru na tuto prom╪nnou, p²i umíst╪ní kurzoru na puntík oznaƒující bod p²eruτení se objeví podmínky platné pro tento bod p²eruτení (viz obr. 4).
ADO
Firma Inprise, jeτt╪ jako firma Borland, formulovala jako jeden ze sv∞ch hlavních cílà dosaºení datového propojení vτech typà datov∞ch bází. Vyjád²ením byla koncepce BDE. Firma Microsoft se nenechala zahanbit a zformulovala - jak jiº to b∞vá jejím zvykem - svou vlastní strategii pro dosaºení stejného cíle. Touto strategií je UDA (Universal Data Access), jehoº cílem je - jak je formulováno na serveru firmy Microsoft - rychl∞, jazykov╪ nezávisl∞ p²ístup k relaƒním i nerelaƒním datov∞m zdrojàm. Tento teoretick∞ základ je dnes realizován ve form╪ MDAC, ƒili UDA a MDAC jsou v obdobném vztahu jako OLE a COM. MDAC zahrnuje t²i hlavní oblasti, a to ODBC (Open Database Connectivity), OLE DB a ADO (Active Data Objects). Zatímco ODBC byla zahrnuta p²edevτím kvàli dodrºení zp╪tné kompatibility, OLE DB definuje hlavn╪ vτechna pot²ebná COM propojení na datové zdroje a ADO, propojení sm╪rem k uºivatelské aplikaci.
Základními komponentami p²i realizaci aplikace s podporou ADO jsou ADOConnection a ADODataSet. Pokud umístíte první z nich na formulá², je t²eba nastavit st╪ºejní vlastnost - ConnectionString. Ta urƒuje to, co jinak zajiτ£uje BDE - to je urƒení charakteristik datového zdroje a napojení na tento zdroj. Vlastnost ConnectionString je skuteƒn╪ ²et╪zec, kter∞ obsahuje ²adu parametrà k tomuto napojení ve tvaru jméno=hodnota a màºe b∞t opravdu dlouh∞. Proto je k dispozici pràvodce (viz obr. 6) , kter∞ celou situaci zjednoduτí. Poklepáním na ikonu komponenty (resp. volbou z kontextového menu nebo stisknutím tlaƒítka - mimochodem mi to p²ipomíná τkolení o operaƒním systému sálového poƒítaƒe IBM p²ed mnoha roky, kdy nám τkolitel kladl v testu otázky typu "Kolika zpàsoby lze provést...") se vyvolá editor vlastnosti ConnectionString, kter∞ má na sob╪ tlaƒítko "Build" pro vyvolání zmín╪ného pràvodce. Nejprve si zvolíte typ OLE DB providera, kter∞ urƒí okruh dat, s nimiº se bude pracovat. Na záloºce "Connection" (viz první ƒást obr. 7) se definují dalτí detaily závislé na prvním kroku. Pro definici ²et╪zce s parametry màºete op╪t vyuºít tlaƒítko "Build" a vybrat si (v naτem p²ípad╪ jako dàsledek p²edchozí volby) ODBC driver (viz druhá ƒást obr. 7). Konfigurace a nabídka obsahu dalτích záloºek vºdy závisí na p²edchozích volbách. Pokud zvolíte v prvním kroku jin∞ OLE DB provider, budou obsah a nabídky dalτích záloºek jiné. Na t²etí záloºce lze doplnit detailní poºadavky na p²ístup k souboru a ƒinnost v síti. Na poslední záloºce jsou pak vτechny poºadavky p²ehledn╪ vypsány a je jeτt╪ moºnost je ruƒn╪ doladit. Souƒástí ²et╪zce parametrà màºe b∞t i implicitní adresá², kde jsou tabulky ƒi soubory umíst╪ny.
Tím je podstatná ƒást práce vykonána a nyní je t²eba nastavit vlastnosti komponenty ADODataSet. Jednak musíte propojit vlastnost Connection s jiº definovanou komponentou ADOConnection (m╪la by se objevit v nabídce vlastnosti), jednak je nutno nastavit dv╪ vlastnosti - CommandType a v závislosti na ní CommandText. Tyto dv╪ vlastnosti jsou velmi zajímavé, protoºe pomocí první z nich màºete zadat ²adu moºností toho, jak∞ bude mít vlastnost CommandText v∞znam. Tak màºete urƒit, zda je jejím obsahem nap²íklad jméno uloºené procedury, zda se jedná o jméno tabulky databáze ƒi o SQL p²íkaz. Pokud nap²íklad zvolíte hodnotu vlastnosti cmdText, pak p²i poklepání na vlastnost CommandText se vám nabídne jednoduch∞ (ale praktick∞) pràvodce pro vytvo²ení SQL p²íkazu (viz obr. 8). Nyní jiº staƒí umístit na formulá² klasické komponenty DataSource, t²eba DBGrid s DBNavigator, a obvykl∞m zpàsobem je propojit (DataSource se ve vlastnosti DataSet propojí s ADODataSet). Po nastavení vlastnosti Active komponenty ADODataSet na True tak jiº v dob╪ návrhu màºete vid╪t v∞sledek podobn∞ jako na obrázku 9. Podstatné na tom je to, ºe v∞sledn∞ program nepot²ebuje mechanismus BDE.
Ob╪ ADO komponenty mají samoz²ejm╪ jeτt╪ celou ²adu dalτích vlastností, a tak τkála moºností nastavení vytvá²í hodn╪ rozsáhlou mnoºinu. K dispozici jsou dalτí komponenty, odpovídající komponentám Table, Query a StoredProc, coº usnadσuje p²echod z BDE na technologii ADO. Vzhledem k tomu, ºe jde o dít╪ z dílny Microsoftu, a navíc o potomka, kter∞ se má opravdu k sv╪tu, lze p²edpokládat, ºe technologie se bude dále rozτi²ovat a vyuºívat v budoucích operaƒních systémech firmy Microsoft. V∞hodou bude pravd╪podobn╪ i okamºitá podpora p²ípadn∞ch novinek v dalτích verzích produktà Microsoftu.
Rámy
Dalτí z novinek v této verzi jsou rámy. Jde o jak∞si hybrid mezi komponentou a formulá²em a podle toho vypadají také jeho vlastnosti. Ukaºme si op╪t, jak lze s tímto prvkem pracovat, a z toho nám pak pràb╪ºn╪ vyplynou p²ípadné v∞hody. Rám je "container class", kter∞ màºe b∞t umíst╪n na formulá²i nebo na jiném rámu. Pro jeho vytvo²ení je - stejn╪ jako pro formulá² - urƒena speciální poloºka menu: File / New Frame. Dostaneme plochu podobnou formulá²i, na kterou màºeme naskládat pot²ebné komponenty - v naτem dále uvedeném p²íklad╪ t²eba RadioGroup pro v∞b╪r polévky, tlaƒítko pro potvrzení v∞b╪ru a editaƒní pole (viz obr. 10), kam vypíτeme po stisknutí tlaƒítka svoji volbu. K tlaƒítku proto p²ipojíme následující proceduru k události OnClick:
procedure Tnabidka.Button1Click(Sender: TObject);
begin
if with RadioGroup1 do ItemIndex<>-1 then
Edit1.Text:=Items[ItemIndex];
end;
Rám je definován stejn╪ jako formulá² (ƒili vizuální sloºka) a je popsán v souboru s p²íponou DFM, v unit╪ jsou ostatní definice a v∞konná ƒást. Rám je moºno uloºit, a to t²emi zpàsoby - pokud jej vyuºijeme jen "v malém", staƒí jej uloºit jako b╪ºn∞ formulá². Dalτími moºnostmi je uloºit jej do repository nebo jako komponentu na paletu. Ob╪ tyto volby jsou v kontextovém menu po poklepání na rám prav∞m tlaƒítkem. Zatímco ukládání do repository je známé, na obrázku 11 je dialog k uloºení rámu na paletu. Zpàsob uloºení má samoz²ejm╪ vliv na rozdíly p²i pouºití. Zatímco pouºití rámu jako komponenty vede k vytvo²ení nové instance t²ídy, umíst╪ní z repository vede k definici nové t²ídy (kopie nebo potomka) a závisí na form╪, jakou p²i v∞b╪ru z repository zvolíte.
Nyní màºete vytvo²it formulá², na kter∞ umístíte dv╪ kopie nadefinovaného rámu. K tomu se vyuºije komponenta Frames, která je na palet╪ na zaƒátku záloºky Standard. Jejím umíst╪ním na formulá² se vyvolá nabídka pro v∞b╪r rámu (viz obr. 12).
To platí jen pro p²ípad, kdy rám není uloºen na palet╪ nebo v repository - odtud màºete vybírat p²ímo poºadovan∞ rám.
Na druhém rámu màºete zm╪nit nabídku polévek t²eba na nabídku hlavních jídel p²ímo tak, ºe si vyberete komponentu RadioGroup z tohoto rámu a p²edefinujete pot²ebné poloºky v inspektoru objektà. Takto umíst╪né rámy jsou p²ipojeny (inherited), ƒili pokud se vrátíte k definici rámu a ud╪láte v n╪m n╪jakou zm╪nu (umístíme t²eba dalτí komponentu Label), pak po p²epnutí zp╪t na formulá² bude na obou rámech tato zm╪na jiº promítnuta.
V∞τe popsané p²epsání komponenty v rámci instance rámu se projeví v definici rámu (p²epnete-li do zobrazení formulá²e jako textu) nap²íklad takto:
inline nabidka2: Tnabidka
Left = 8
Top = 176
TabOrder = 1
inherited RadioGroup1: TRadioGroup
Caption = 'hlavní jídlo:'
Items.Strings = (
'vep²o-knedlo'
'rizoto'
'pizza'
'guláτ')
end
end
Pàvodní vlastnosti jsou v této instanci rámu p²edefinovány (overriden). Na instanci rámu ale nelze umístit ºádnou novou komponentu a pokus o odstran╪ní komponenty z takovéto instance vede ke zpráv╪ na obrázku 13. Pokud jde jen o estetickou záleºitost, pro komponentu v takovém p²ípad╪ màºete namísto toho pouºít nastavení vlastnosti Visible=False.
Vlastníkem komponenty na rámu není formulá², ale rám, takºe pokud chcete nap²íklad tlaƒítkem umíst╪n∞m na rámu vyvolat akci s objektem na formulá²i, musíte tomu p²ísluτn╪ p²izpàsobit i p²íkazy.
P²i doplσování akcí ke komponentám na rámu se automaticky generuje i p²ipojené volání akcí zadan∞ch v definici rámu. Pokud bychom nyní nap²íklad cht╪li v uvád╪ném p²íklad╪ zobrazovat volbu po stisknutí tlaƒítka i na komponent╪ Label umíst╪né na formulá²i, pak po poklepání na tlaƒítko na rámu se vygeneruje procedura, která jiº obsahuje p²ipojené (inherited) volání deklarované v∞τe v definici rámu:
Z n╪kolika v∞τe uveden∞ch postupà je vid╪t rozdíl mezi pouºitím rámu a ostatními jiº znám∞mi prvky Delphi. Na konec jeτt╪ dodejme, ºe díky specifick∞m vlastnostem rámu lze τet²it zdroje a zkrátit tak délku programu.
Návrhá² datov∞ch modulà
Datov∞ modul se prom╪nil z b╪ºné "plochy pro umíst╪ní DB komponent" v mini-CASE nástroj. To je samoz²ejm╪ p²ehnané, ale p²edpokládám, ºe se najdou tací, kte²í na tuto prom╪nu naváºou, a vbrzku se n╪jak∞ ten ad-in-pràvodce do IDE s více moºnostmi na toto téma objeví. Jak tedy nyní vypadá práce p²i návrhu datového modulu? Vyberete-li z repository datov∞ modul, zjistíte, ºe plocha je rozd╪lena na dv╪ ƒásti, p²iƒemº v levé ƒásti je zobrazena stromová struktura se strukturou komponent vloºen∞ch na datov∞ modul. Na pravé ƒásti jsou dv╪ záloºky, p²iƒemº první zobrazuje komponenty tak, jak tomu bylo v p²edchozích verzích, a druhá zobrazuje diagram struktury pouºit∞ch dat. Na obrázku 14 je datov∞ modul v základní podob╪ po p²idání jedné tabulky, zatím bez jakékoliv dalτí specifikace. V levé ƒásti jsou ve stromu ƒerven╪ oznaƒena místa, která je t²eba jeτt╪ urƒit, a ikonka u poloºek, které jsou definovány implicitn╪, je v matn∞ch barvách. Komponentu màºete umis£ovat bu╘ na plochu, nebo p²ímo formou drag & drop na strukturu stromu. Pokud ji p²idáte na úroveσ session, p²edpokládá se, ºe se jedná o nov∞ alias nebo adresá², a p²idá se nov∞ uzel na úroveσ aliasu. Pokud ji p²idáte na úroveσ aliasu, p²edpokládá se, ºe se jedná o stejn∞ alias, a tabulka jej má jiº dopln╪n∞ v p²ísluτné vlastnosti - prost╪ návrhá² se snaºí b∞t maximáln╪ vst²ícn∞. Na obrázku 15 je ukázáno, jak màºe vypadat konkrétní návrh datového modulu. Je zde zobrazena pouze záloºka Data Diagram, protoºe záloºka Components vypadá stejn╪ jako v minul∞ch verzích.
Vlastní vytvo²ení diagramu není automatické. Tabulky, s nimiº se má pracovat, se umístí na záloºku p²enesením drag & drop. V rámeƒku tabulky se objeví pouze poloºky, které jsou definovány field editorem. K tabulkám je moºno dodefinovat a p²ipojit komentá²e a ràzná propojení. K tomu slouºí p╪t tlaƒítek na levém okraji záloºky Data Diagram (viz obr. 15). První z nich definuje vztah vlastnosti, kter∞ vzniká v p²ípad╪, ºe vlastnost jedné komponenty odkazuje na jinou komponentu. Druhé definuje vztah master-detail. P²íklad takového vztahu je na obrázku 15 a p²i jeho definici je vyvolán "návrhá² propojení polí" (viz obr. 16), kde se specifikují detaily tohoto propojení. T²etím tlaƒítkem se aktivuje vztah definovan∞ v tabulkách jako "lookup" a poslední dv╪ slouºí k vytvo²ení bloku komentá²e a k propojení komentá²e s tabulkou. Krom╪ t╪chto propojení se provede jeτt╪ jedno dalτí automaticky, a to tehdy, kdyº na záloºku umístíte n╪kter∞ nad²ízen∞ uzel ze stromu v levé ƒásti návrhá²e. V tom p²ípad╪ se veτkeré odkazy automaticky zobrazí tak, jak je vid╪t na obrázku 15 v odkazu na Default {Session}.
Návrhá² umoºσuje i tisk datového modelu, ale není to n╪jaká dokumentace, n∞brº pouze kopie v∞τe zobrazené záloºky Data Diagram pro tiskárnu nebo obrázek do souboru.
Jazyková podpora
Pokud budete chtít svàj program v Delphi p²eloºit do jiného jazyka, budete mít od této verze úlohu velmi usnadn╪nu. Souƒástí prost²edí je n╪kolik nástrojà, které vám umoºní vytvo²it tabulku se vτemi ²et╪zci, které se v programu vyskytují jako souƒást vlastností typu "localizable" nebo jako souƒást "resources". Pokud chcete, aby byly nabídnuty k p²ekladu vτechny texty, musíte i v kódu programu striktn╪ vyuºít mechanismu "resourcestring". Pokud tyto konvence dodrºíte, je vlastní postup jednoduch∞. (Princip je obdobn∞ tomu, kter∞ je pouºit v programu ing. Z. Hlinky pro lokalizaci programà Delphi - viz Chip 7/98, Chip CD 9/98.) V menu Project/Languages zvolíte "Add...". Touto volbou se vyvolá pràvodce pro p²idání jazyka (viz obr. 17). Za jeho pomoci si postupn╪ zvolíte projekt, jazyk a jeho subvariantu a nakonec adresá², v n╪mº se bude p²eklad realizovat. Poté pràvodce provede anal∞zu formulá²à a zdrojà ve zvoleném projektu a v zadané podknihovn╪ zaloºí nov∞ projekt pro vytvo²ení DLL pro zvolen∞ jazyk. Hned poté vám pràvodce p²edloºí v∞sledek své anal∞zy v tabulce, zobrazené na obrázku 18.
Zde si màºete postupn╪ pro jednotlivé formulá²e a zdroje procházet nalezené texty a provád╪t jejich p²eklad do p²ísluτného jazyka. Po ukonƒení je moºno provést p²eklad nov╪ definované DLL knihovny (s p²íponou odpovídající zvolenému jazyku namísto DLL) - projekt je uloºen v podknihovn╪, kterou jste si zvolili. Poté se màºete vrátit k pàvodnímu projektu a z menu Project/Languages/Set active si vyberete p²ísluτn∞ jazyk. Po p²ekladu program akceptuje DLL, která je p²ítomna ve stejném adresá²i jako spouτt╪n∞ program. Pokud zde tato DLL není, program b╪ºí v originálním jazyku. Proces je velmi transparentní a jednoduch∞.
CD-ROM
V této verzi je poprvé distribuován s Delphi i CD, kter∞ obsahuje pom╪rn╪ rozsáhlou τkálu produktà t²etích stran. Na internetovém serveru Inprise je jiº dlouho stránka s rozsáhl∞m, dob²e ut²íd╪n∞m seznamem firem, které nabízejí produkty související n╪jak∞m zpàsobem s Delphi. N╪kolik z nich se objevilo i na zmín╪ném CD a je to pro tyto firmy i dobrá vizitka a dobrá reklama. Zatímco n╪které firmy zde nabízejí t²eba jen jedinou komponentu, jsou zde i takové, které nabízejí jako freeware, lite nebo opensource i kolekce stovek komponent (LMD, ABC for Delphi) nebo balík expertà (GExpert). V╪tτinu t╪chto produktà màºete nalézt a získat i na internetu (n╪které i p²ípadn╪ kaºd∞ m╪síc na Chip CD), ale jsou i takové, které bylo moºno (alespoσ v dob╪ zaƒátku prodeje) získat pouze na tomto CD. Fakt, ºe se staly souƒástí tohoto CD, na druhé stran╪ jist╪ znamená i urƒitou visaƒku kvality produktu.
Krom╪ CD s produktem Delphi a zmín╪ného CD t²etích stran je ve verzi Enterprise distribuována i verze 3 produktu C++Builderu a verze 2 JBuilderu.
Záv╪r
Jak jsem uvedl na zaƒátku, je v aktuální verzi Delphi ²ada dalτích v∞znamn∞ch novinek. Uve╘me jen namátkou komponenty pro p²ístup k InterBase bez prost²ednictví BDE, celkem 32 komponent ActiveX na palet╪ Servers pro p²ístup k produktàm firmy Microsoft, mnoho nov∞ch technologií v p²ístupu k internetu atd. Hlavní dojem pak vytvá²í "vylad╪né" v∞vojové prost²edí, ²ada nov∞ch pràvodcà a stabilita produktu.
Signifikantní je u této verze znaƒn∞ pokrok ve sm╪ru podpory pro technologie firmy Microsoft. Je to zcela pochopitelné. I p²es ²adu odpàrcà Microsoftu, od zavil∞ch aº po obƒasné, nelze p²ehlédnout jeho trvalou a spíτe sílící pozici. Microsoft dnes pokr∞vá bezpeƒn╪ prakticky bez v╪tτích mezer celou τkálu oblastí softwaru a brousí si zuby i na dalτí obory. Totéº platí zcela beze zbytku i pro technologie na poli softwaru.
V tomto sv╪tle se jeví smlouva uzav²ená nedávno mezi Inprise a Microsoftem jako jednoznaƒn∞ p²ínos pro uºivatele. Pokud pomineme ekonomické aspekty, které urƒit╪ byly i p²i realizaci této smlouvy dominantní, pak moºná jiº v této verzi Delphi je náznak úrody, kterou by smlouva mohla (a m╪la) p²inést.
Kolekci produktà firmy Inprise (Delphi spoleƒn╪ s CBuilderem a JBuilderem) dnes tvo²í v∞vojové nástroje, které lze zcela urƒit╪ oznaƒit jako jedny z nejlepτích, nejcelistv╪jτích a nejúpln╪jτích na dané, tedy windowsové platform╪. Snadnost tvorby programà pracujících souƒasn╪ s technologiemi COM, DCOM, CORBA a UDA, rychlost vytvo²ení spolehliv∞ch víceúrovσov∞ch aplikací, pracujících na jednotlivém poƒítaƒi nebo na jakékoliv síti, τí²e palety moºností pouºitelnosti kombinovaná se snadností tvorby, toho dnes nedosahuje ºádn∞ jin∞ v∞vojov∞ prost²edek. Rostoucí popularitu je z²eteln╪ vid╪t práv╪ nap²íklad na internetu. Tolik stránek a tolik autorà souvisejících prost²edkà a komponent, kolik jich má Delphi, nemá jednoznaƒn╪ ºádn∞ jin∞ v∞vojov∞ prost²edek. O rostoucí popularit╪ sv╪dƒí i skuteƒnost, ºe firma p²ikroƒila ke klíƒování instalace, která navíc probíhá ve zcela novém hávu (viz obr. 19). Popularita zcela urƒit╪ jeτt╪ vzroste, pokud zaƒne Delphi koketovat s platformou Linuxu, jak nedáno naznaƒily zpráviƒky "od Inprajsà" (nemohu si pomoci, ale stále si jeτt╪ myslím, ºe by "od Borlandà" zn╪lo lépe). A tak o budoucnost snad nemusíme mít obavy.
Tím nechci tvrdit, ºe by se nenaτla jeτt╪ spousta v╪cí, které bychom v Delphi rádi vid╪li. O to napjat╪jτí bude ƒekání na p²íτtí léto a na dalτí verze (ale pozor, bude to zase verze sudá!), jaká p²ekvapení nám p²inesou...