phpRS            

Dnešní datum: 07. 09. 2010   | Hlavní stránka | Seznam rubrik | Kniha návštěv |  
  Hlavní menu
Hlavní stránka
Seznam rubrik
Fotogalerie
Kniha návštěv
Stáhněte si
Odkazy
Ankety
TOP 15

  Reklama


  Rubriky

  Poslouchám na síti


Spusť přehrávač


Spusť přehrávač


  Informace o webu
Všehochuť aneb od každého trochu

Content © 1991-2010 Slávek Rydval

View Slávek Rydval's profile on LinkedIn

Vytvořeno pomocí phpRS a Texy!

RSS kanál

Software

* Borland Delphi 5 Enterprise

Vydáno dne 03. 08. 2005 (4043 přečtení)

Po čtvrté verzi a třech záplatách přichází pátá verze oblíbeného nástroje Delphi. Nejen na otázku, zda bude i k této verzi zapotřebí opravného balíku, se budu snažit odpovědět právě na těchto několika stranách.

Dodávka a instalace

Delphi se na trh dodává stejně jako dříve ve třech baleních: Standard, Proffesional a Enterprise (dříve Client/Server). Měl jsem možnost podívat se na Delphi nejtěžšího kalibru. V krabici kromě vlastního CD s Delphi naleznete čtyři manuály – tenký Quick Start, silnější Object Pascal Language Guide a Operation Guard k InterBase a nejsilnější Developer‘s Guide – a další CD: Companion Tools, C++ Builder 3 a JBuilder 2. Co mě překvapilo bylo balení CD. Všechna, kromě C++ Builderu, byla v papíru, C++ Builder v klasické umělohmotné krabičce. Na to, kolik produkt stojí, bych čekal, že v umělohmotné krabičce budou všechna CD. Pro pokročilé bude asi nejpoužívanější hierarchický strom objektů (tříd), který doporučuji mít pověšený hned nad monitorem. Instalace Delphi 5 proběhla bez sebemenších problémů. Chcete-li však používat ADO, je potřeba nainstalovat si MDAC zvlášť.

Object Inspector

První, co nás zaujme, jsou změny v uživatelském prostředí. Object Inspector má změn hned několik. Již nemusíme dlouho očima hledat vlastnosti typu objekt (vlastnosti s „křížkem“), jsou lépe vidět, protože jsou světle podbarveny. Dále lze zvolit dvojí pohled: podle abecedního seznamu vlastností, jak jsme zvyklí dosud, nebo podle kategorií, kam vlastnost logicky patří (viz obrázek). To, že je vlastnost v jedné skupině ještě neznamená, že se nemůže objevit i v jiné. Například vlastnosti Width a Height můžeme nalézt ve skupině Visual ale stejně tak v Layout (ale i jinde). Při programování komponenty lze říct, v jaké skupině či skupinách má nová vlastnost být. Na stavovém panelu Object Inspectoru je zobrazen počet nezobrazených vlastností.

Už je konec psaní si čísel obrázků v ImageListu vedle klávesnice na papírek a pak jejich doplňování. U takovýchto seznamů (kurzory, obrázky, barvy, …), nazývaných kombinované seznamy, je vše zobrazeno přímo u vlastnosti v Object Inspektoru.

Co jsem tam měl ještě dodělat?

Také si všude kolem sebe píšete na papíry, co ještě máte do projektu udělat a stejně je pak nemůžete nalézt, nebo máte celý monitor polepený klasickými žlutými papírky? Nezoufejte. Pomůže vám ToDo List, což je nástroj, kam si zaznamenáváte věci, které máte na projektu udělat a pak již jen odškrtáváte, co máte hotové. Pokud to přeci jenom chcete mít na papíře, máte možnost si seznam převést do tabulky, kterou lze následně získat v HTML podobě a vystavit třeba na intranetovém serveru ve firmě. Seznam lze třídit a filtrovat podle zvoleného kritéria – pouze vybraného uživatele, stavu,vybrané kategorie, zda je akce již hotová či nikoliv a dalších.

Kdo má ta okna pořád hledat, otvírat a zavírat

Pokud jste stále přepínali mezi okny a hledali při ladění jiná okna než při vývoji, můžete tomu učinit konec. Delphi 5 umožňují uložit si vlastní nastavení Desktopu, z nichž jedno nastavení lze zvolit jako ladící. Pak můžete mít různá okna jako sledování proměnných, zásobníku apod. pouze v ladícím módu a ostatní při psaní kódu. Nastavení oken platí globálně, tedy pro všechny projekty současně. Nelze si tedy pro každý projekt udělat vlastní nastavení, což se může někomu zdát jako nevýhoda – zde samozřejmě záleží na samotném vývojáři.

Změny ve VCL

Větších změn dosáhla komponenta TListView. Kromě jiného umožňuje zobrazovat obrázky ve stylu vsReport i u podřízených členů (subitems). Umožňuje vybírání položek myší, aniž by uživatel na položku kliknul. Nápověda (Hint, zde InfoTip) se nyní může použít u všech členů seznamu. Přibyla také událost OnColumnRightClick. Z názvu je jasné, k čemu slouží. Vylepšení doznala komponenta TCheckListBox, kde přibyla vlastnost ItemEnabled určující, který člen je nebo není možno vybrat.

Obsluhu událostí aplikace lze již provádět pomocí nové komponenty TApplicationEvents, kde jsou shromážděny události aplikace. Co mi je však záhadou, proč tam nejsou i vlastnosti. No, možná příště. Do třídy TApplication přibyly ještě vlastnosti BiDiKeyboard a NonBiDiKeyboard, které dovolují uživateli navrhnout si klávesnici dle potřeby národního prostředí.

Objekt TScreen obsahuje dvě nové vlastnosti: HintFont a MenuFont, které určují písmo používané pro hinty a pro menu. Menu má další příjemnou vlastnost. Aby se vývojáři vyvarovali typické chybě – dvě stejná podtržená písmenka – zavedly Delphi vlastnost AutoHotkeys, které zajistí jednoznačné přiřazení klávesové zkratky do menu (pozor, je to vidět až po spuštění projektu). Pro efekt je možné určit, jakým způsobem se menu rozbalí (známe například z Windows 98) – funguje pouze pro Windows 98 a pro Windows 2000.

OnContextPopup je událost, která byla přidána do třídy TControl. Jedná se o zapouzdření zprávy Windows WM_CONTEXTMENU, tedy běžně používaná při kliknutí pravým tlačítkem na ovládacím prvku k vyvolání kontextového menu. V této události můžete ještě před vyvoláním menu provést vlastní akci, dokonce můžete vyvolání menu potlačit.

TClientDataset umožňuje díky vlastnosti Constraints, která je nyní published, zadávat různá uživatelská omezení. Pokud chcete použít SQL příkaz, již není potřeba kvůli tomu speciálně používat TQuery, ale můžete použít přímo metodu Execute komponenty TDatabase. Nastavením vlastnosti AutoRefresh komponenty TDBDataSetu máte zajištěno, že defaultní hodnoty a autoinkrementální hodnoty jsou automaticky načteny při zápisu záznamu (není tedy potřeba volat metodu Refresh jako dosud).

V adresáři Source jsou nově zdrojové soubory pro rozhodovací krychle (Decision Cube), které mohli někomu v minulé verzi chybět.

Pro vývojáře, kteří potřebují vytvářet i aplikace, které jsou součástí Control Panelu (Ovládací Panel), jsou Delphi 5 dobře vybaveny. Poskytují dvě třídy k tomuto určené – TAppletApplication a TAppletModule.

Pozor si dejte při přechodu z nižší verze u komponenty TListBox, konkrétně u metody Exchange vlastnosti Items, kdy dochází k jinému zaměření po provedení výměny. Dříve zůstala hodnota vlastnosti ItemIndex nezměněna, nyní dochází k její aktualizaci.

Rámce

Rámec (Frame) je další novinkou v Delphi 5. Rámec slouží jako kontejnér pro další komponenty a jako takový může být vložen do jiného rámce nebo – častěji – přímo na formulář. Jsou-li tedy na formuláři stejné skupiny komponent (příkladem může být hrací kostka složená z TPanelu a devíti TShape), pak je použití rámce velmi výhodné. Rámce se navrhují stejně jako formulář. Pokud chcete udělat změnu v každé skupině, stačí ji provést pouze v rámci a vše se promítne do použitých rámců v projektu. Vložení rámce do formuláře probíhá pomocí umístění komponenty TFrame na formulář a následný výběr ze seznamu rámců. Komponenty na vloženém rámci lze přesouvat, měnit jejich velikost apod., nelze je však smazat – to musíte udělat v návrhu rámce. Stejně tak chcete-li na panel umístěný v rámci přidat třeba vstupní pole (TEdit), nepovede se vám to – vlastníkem vstupního pole bude formulář. Rámec použitý na formuláři již není kontejnérem.

Nové možnosti ladění

Delphi 5 mají (konečně) větší možnosti nastavování bodů přerušení (breakpoints) oproti dřívějším verzím. Kromě dříve podporované podmínky či počtu průchodů přibyla možnost shlukovat jednotlivé body přerušení do skupin a pak dle potřeby jednotlivé skupiny povolovat či zakazovat. Dále je možno posílat do Event Logu zprávu včetně možnosti vyhodnocení výrazu a také nastavit, zda se má při dosažení bodu přerušení běh programu opravdu přerušit. Je konec různým zápisům do externího souboru. Poslední možností je určit si chování bodu přerušení v případě výjimky. Další novinkou je možnost sledování jednotky FPU případně MMX registrů. Přidávání proměnných a výrazů je nyní snažší díky podpoře drag‘n‘drop. Stačí označit proměnnou či výraz myší a pak přetáhnout do okna WatchList (nejste-li v ladícím modu, držte navíc klávesu Alt).

Pokud potřebujete ladit více procesů najednou, stačí k tomu již pouze jedna instance Delphi. Stejně dobře můžete ladit proces, který z Delphi nebyl spuštěn a dokonce nebyl ani v Delphi vytvořen. Ovšem pozor, zkoušet ladit takový kernel32.dll zcela jistě vede k zamrznutí počítače, což samozřejmě není chyba Delphi…

Trojí pohled na data

Velkého rozšíření se dočkal datový modul, který nyní umožňuje dívat se na data třemi různými pohledy. První z nich – komponentový pohled – nikoho nepřekvapí, neboť jej zná z dřívějších verzí. Další dva jsou již novinkou. Hierarchický pohled ukazuje stromovou strukturu našich dat a zobrazuje vztahy vlastník – vlastněný tak, jak jsou na sebe logicky navázáni. Například TDatabase má „pod sebou“ TTable či TQuery, kteří získávají některé vlastnosti rodiče – SessionName či DatabaseName. TTable má zase jednotlivé položky (TFields). Pokud chcete přidat další dotaz či tabulku, stačí odpovídající komponentu umístit na TDatabase v hierarchickém pohledu a vše potřebné je automaticky doplněno za vás. Červeným rámečkem kolem ikony nám Delphi říkají, že musíme ještě vyplnit nějakou vlastnost, abychom mohli daný prvek používat. Posledním je pohled s názvem Datový diagram, který popisuje vztahy mezi komponentami. Jednoduše lze zobrazit vztahy typu master-detail nebo lookup, ale i nadřazenost komponent (například TDatabase). Přehlednost je dále zvýšena pomocí voleb barev a možností dopsat si libovolné komentáře k návrhu. Datový diagram je pěkně vyvedený, ale pokud si myslíte, že si s ním budete moci navrhovat vlastní, nové, datové diagramy, máte smůlu. Datový diagram zobrazuje to, co je již hotovo, co již běžně máte v některém CASE systému nebo co máte namalované tužkou na papíře. Doufám, že nás tím vývojáři v Borlandu navnadili na verzi 6, kde by jistě většina z nás ocenila datové modelování od začátku, bez použití jiného CASE systému. Osobně bych byl zklamán, kdyby to tam nebylo.

Na server InterBase přímo

Velkou novinkou v Delphi 5 je i připojení k InterBase serveru nativními linky, jejichž funkce zapouzdřují speciální komponenty. Od verze 5 tedy není potřeba ani BDE ani ODBC a dokonce ani ADO. Stačí použít komponentu TIBDatabase, definovat k ní transakci a již se můžete začít připojovat. Chcete-li zadat SELECT příkaz do TIBQuery, pomůže vám jednoduchý wizard, který přímo v editoru vlastnosti zobrazuje všechny tabulky a jejich sloupce (samozřejmě, jste-li připojeni na databázi). Je to sice maličkost, ale ušetří práci. TIBDataSet je vypracovanější komponenta mající kromě jiného vlastnosti DeleteSQL, InsertSQL, ModifySQL, RefreshSQL a SelectSQL, což opět urychluje práci a hlavně šetří zdroji – nemusíte totiž používat TIBUpdateSQL.

ADO Express

KAPITOLA OD ZBYŠKA HLINKY

Lokalizace v Delphi

KAPITOLA OD ZBYŠKA HLINKY

Jiný způsob ukládání

Pokud se díváte, co že vám to vlastně Delphi do vašeho adresáře s projektem uložily, jistě si všimnete drobné změny. Definice formulářů se již ukládají v textové podobě, byť mají stejnou příponu jako ve verzích nižších. Pokud se vám to nelíbí, lze samozřejmě přepnout na binární podobu.

Vylepšený prohlížeč objektů

Prohlížeč objektů (Object Browser) je přepracovaný od základů. Umožňuje zobrazit informace ve třech náhledech. Globals zobrazuje všechny globální deklarace, které seskupuje podle typů. Hierarchický pohled umožňuje Classes. Zobrazuje vztahový diagram od prapředka všech tříd TObject ke zvolené třídě. Konečně poslední typ pohledu je Units, kde lze sledovat příslušnost jednotlivých prvků k modulům. Výběr lze samozřejmě omezit pouze na symboly vyskytující se v daném projektu nebo můžete prohlížet všechny dostupné symboly z VCL.

Microsoft Office

Na paletě Servers naleznete komponenty pro práci s aplikacemi z kancelářského balíku Microsoft Office. Tyto komponenty fungují na principu COM technologie. Již pomocí tří základních příkazů lze komunikovat například s Excelem nebo lze naformátovat text a poslat jej přímo do Wordu (k tomu už samozřejmě příkazů potřebujete více).

Práce se seznamy

Snad každý někdy napsal projekt, který potřeboval seznam. Delphi 5 přicházejí s knihovnou contnrs, která umožňuje pracovat s několika druhy seznamů. TClassList představuje seznam tříd, TObjectList seznam objektů (i vlastněných), TComponentList je seznam komponent. Pro frontu resp. zásobník ukazatelů je připraven TQueue resp. TStack. Pro objekty jsou TObjectQueue a TObjectStack. Drobnou poznámku bych měl k TComponentList. Tato třída existovala již v Delphi 4 v jednotce dsgnintf a nyní je přejmenována na TDesignerSelec­tionList, což může vést k problémům při přechodu právě ze čtvrté verze.

Delphi 5 a registry

V nové verzi Delphi došlo také ke změně ukládání informací o seznamu balíčků v registrech. Pátá verze je oproti dřívějším ukládá do HKEY_CURRENT_USER namísto do HKEY_LOCAL_MACHINE, což vede k problémům s uživateli. Pokud jeden uživatel nainstaluje komponenty, musí je druhý na tom samém počítači nainstalovat také. Pokud pracuje jeden vývojář na jednom počítači, toliko to ještě nevadí, ale například ve školách, kdy se na jednom počítači střídá velké množství studentů, je toto řešení neúnosné.

Práce v týmu

Pro práci v týmu přichází s Delphi zcela nový produkt – Borland TeamSource (BTS). Jedná se o samostatnou aplikaci, kterou musíte instalovat zvlášť. BTS podporuje dvě možnosti ukládání projektů: Zlib, který je standardní a PVCS, který je známý z dřívějších verzí Delphi. Ostatní si můžete naprogramovat sami. BTS funguje jako paralelní model správy dat, což znamená, že každý vývojář pracuje na své vlastní kopii projektu, kterou si umístí na svůj lokální počítač a při ukládání hotové práce se případné změny ve stejném souboru s jiným vývojářem skombinují (slijí, anglicky merge). Nic proti tomu celkem nemám, ale osobně to nepovažuji za úspěšný model týmové spolupráce na projektech. Ale jdeme dál. Definujeme si projekt, uživatelé, kteří mohou na projektu pracovat a potřebné adresáře, kam se bude projekt ukládat. Sice jsem delší dobu tápal, než jsem přišel na to, jak se s BTS pracuje, ale nakonec se mi to povedlo a mohl jsem začít přidávat soubory, upravovat je a dávat zase zpět. Problém nastal, pokud jsem změnil soubor, který taktéž změnil virtuální kolega na druhém počítači. Ejhle, Zlib neumožňuje slévání dvou verzí dohromady, což mě vzhledem k velkým titulkům na reklamních letácích značně zarazilo! Čekal jsem, že slévání bude na standardní instalaci BTS, ale asi jsem náročný uživatel. Slívání by mělo umožňovat PVCS.

Při vývoji středních a velkých projektů bývá zvykem zakládat si tzv. podprojekty. S BTS máte dvě možnosti. Buďto si založíte jeden velký projekt s velkým množstvím adresářů a souborů a nebo si každý podprojekt založíte jako vlastní samostatný projekt. Budete-li mít jeden velký projekt, pak všichni vývojáři pracující na daném projektu vidí a mohou upravovat všechny ostatní „podprojekty“, což nemusí být žádoucí. Mám-li založeno větší množství projektů, musíte ke každému založit uživatele. Máte-li například deset vývojářů, z nichž každý pracuje třeba jen na dvou projektech a přitom si může prohlížet pět ostatních, pak jméno každého vývojáře napíšete sedmkrát (není tam ani combo box s dříve použitými vývojáři). Co teprve v týmech, kde jsou kromě vývojářů i tým, který projekty testuje.

Na BTS se mi kromě zmíněného nelíbí ještě další věci. První je absence manuálu. Nápověda je sice dodána, ale je natolik stručná, že vám nezbude nic jiného než experimentovat. Nepodařilo se mi umožnit pracovat více lidem na jednom počítači (Windows 95). Ať jsem se přihlásil jako kterýkoliv uživatel, vždy jsem tam byl jako již zavedený uživatel. Každý vývojář tedy musí mít vlastní počítač. Kromě adresářů, které programu sami řeknete, si BTS udělá ještě navíc adresář na disku C:, což také není nejslušnější chování aplikace.

Ač to říkám nerad, BTS je pěkný ročníkový projekt univerzitního studenta, ale pro práci v týmech bych raději sáhl například po produktu Visual SourceSafe od Microsoftu.

Další novinky

S Delphi dostáváte (konečně) aplikaci Resource Workshop. Delphi jsou připravené na soubory typu .RC a lze je začlenit do projektu a kompilovat spolu s ostatními soubory projektu. Komponenta WebBrowser integruje HTML prohlížeč přímo do vývojového prostředí. Kromě podpory HTML je v Delphi i podpora jazyka XML.

Stabilita a rychlost

Delphi 5 působí mnohem stabilněji, než první edice verze čtvrté. Bohužel ale nejsou stabilní úplně. Občas se mi zdálo, že se jim některé mé projekty nelíbí a proto při druhém či třetím spuštění projektu Delphi zamrzly. Tuto nepříjemnou vlastnost jsem omezil tím, že jsem smazal všechna nastavení ploch, ale i tak se mi to nepodařilo zcela vyloučit. Zvláštní na tom je, že bylo celkem jedno, na jakém projektu jsem pracoval. Ať to byl projekt naprosto nový s minimálním počtem komponent a kódu nebo napsaný v dřívějších verzích, ať šlo o aplikace databázové nebo nedatabázové. Prostě některé projekty Delphi úplně milovaly a ani jednou nezamrzly, a některé vyloženě nenáviděly – jako by žárlily. Postupným omezováním komponent na formuláři jsem zaznamenal zamrznutí při použití TStringGrid nebo TListView. Projekt byl v Delphi 4 bezproblémový, proto bych vyloučil komplikace s hardware. Na druhou stranu žádný jiný počítač, na kterém se jeden konkrétní projekt testoval, s tímto problém neměl. Pokusy byly provedeny na Windows 95, Windows 95 OSR 2 a Windows 2000 RC 1. Pouze na Windows 2000 RC 1 se zdálo, že k zamrznutí nedojde. Bohužel jsem neměl tu možnost otestovat problém na Windows NT, ale vzhledem k tomu, že Windows 2000 jsou následníkem Windows NT, nemusel by být problém ani tam.

Co se rychlosti týče, nezaznamenal jsem kromě startu žádné výrazné zpomalení. Překlad i ladění aplikací probíhal srovnatelně rychle s Delphi 4 (testovací počítač byl Pentium 200 MMX, 64 MB paměti a 6,4 MB pevný disk).

Delphi Professional

KAPITOLA OD ZBYŠKA HLINKY

Verdikt

V recenzi nebylo možno postihnout všechny novinky a vylepšení, dost jich zůstalo kvůli nedostatku místa nevyřčeno. Snažil jsem se zaměřit na ty, které jsou na první pohled vidět nebo na takové, které jsem považoval za výrazné. Informace o dalších novinkách naleznete přímo na stránkách firmy Borland (Inprise).

Delphi jako takové jsou kvalitním produktem. Novinek není (vzhledem k verzi 4) tolik, ale jsou v samotném prostředí takové, po kterých programátoři již delší dobu volali. Důraz byl kladen více na kvalitu a je to znát. Borland si napravil reputaci po neúspěchu s Delphi 4. Otázkou je, zda přecházet na vyšší verzi či nikoliv. Samozřejmě je důležité, na jakých projektech pracujete. Chcete-li vytvářet aplikace pro Internet, vícevrstvé aplikace či chcete-li využívat moderních technologií, pak přechod bude důležitý. Používáte-li Delphi 3 a nižší, přechod bude jistě velkým zpříjemněním práce. Máte-li verzi 4 a nepotřebujete-li používat vymožeností nových Delphi, zůstaňte u své verze.

Obrázky

Data Diagram - Data pěkně pohromadě
Ladíme s Delphi - Okno s registry FPU a nastavení bodů přeru
Nový prohlížeč objektů
Komponenty ADO
Komponenty pro přímý přístup k Interbase
Komponenty pro práci s Microsoft Office
Seznam akcí, které se mají udělat a které jsou hotovy
Object Inspector - Skupiny komponent a kombinovaný seznam
Rámce lze použít i pro kostky z Videostopu

Co se líbilo

  • vykreslování kombinovaných seznamů
  • nastavitelné body přerušení
  • rámce
  • ToDo List

Co zklamalo

  • Týmová spolupráce

Tento článek byl napsán pro časopis Softwarové noviny 12/1999.

Upozornění: tento text neprošel redakční úpravou, takže je tak, jak byl napsán včetně případných chyb. Žádná část tohoto článku nesmí být použita bez předchozího souhlasu autora.

Seznam mých dalších článků je v tomto přehledu.




[Akt. známka: 0 / Počet hlasů: 0] 1 2 3 4 5

Celý článek | Autor: Slávek Rydval | Počet komentářů: 0 | Přidat komentář | Informační e-mailVytisknout článek

  Čtenář
Jméno:
Heslo:


Registrace | Info
Zapomenuté heslo

  Vyhledávání

Hledej
na Nawebce!


Rozšířené vyhledávání

  Kalendář
<<  Září  >>
PoÚtStČtSoNe
  1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30    

  Reklama


rkEdit především pro vývojáře
rkEdit především pro vývojáře