home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 January / Chip_2000-01_cd.bin / obsahy / Chip_txt / TXT / 134.txt < prev    next >
Text File  |  1999-11-24  |  20KB  |  86 lines

  1. Borland Delphi 5.0
  2. 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.
  3.  
  4. ¼íslo 5 ºije, a má se k sv╪tu!
  5.  
  6. 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. 
  7. 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. 
  8. 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à. 
  9. 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. 
  10.  
  11. Body p²eruτení
  12. 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.
  13. 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"). 
  14. 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. 
  15. 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.
  16. 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).
  17.  
  18. ADO
  19. 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.
  20. 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. 
  21. 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. 
  22. 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.
  23.  
  24. Rámy
  25. 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:
  26.  
  27. procedure Tnabidka.Button1Click(Sender: TObject);
  28. begin
  29. if with RadioGroup1 do ItemIndex<>-1 then
  30. Edit1.Text:=Items[ItemIndex];
  31. end;
  32.  
  33. 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. 
  34. 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).
  35. 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. 
  36. 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. 
  37. 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:
  38.  
  39. inline nabidka2: Tnabidka
  40. Left = 8
  41. Top = 176
  42. TabOrder = 1
  43. inherited RadioGroup1: TRadioGroup
  44. Caption = 'hlavní jídlo:'
  45. Items.Strings = (
  46. 'vep²o-knedlo'
  47. 'rizoto'
  48. 'pizza'
  49. 'guláτ')
  50. end
  51. end
  52.  
  53. 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.
  54. 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. 
  55. 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: 
  56.  
  57. procedure TForm1.nabidka1Button1Click (Sender: TObject);
  58. begin
  59. nabidka1.Button1Click(Sender);
  60. Label1.Caption:=Edit1.Text;
  61. end;
  62.  
  63. 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. 
  64.  
  65. Návrhá² datov∞ch modulà
  66. 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. 
  67. 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}.
  68. 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.
  69.  
  70. Jazyková podpora
  71. 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.
  72. 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∞.
  73.  
  74. CD-ROM
  75. 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.
  76. 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.
  77.  
  78. Záv╪r
  79. 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. 
  80. 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. 
  81. 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. 
  82. 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.
  83. 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...
  84. Ji²í Ventluka
  85.  
  86.