Obsah
  • Prolog
  • Dokumentace
  • Instalace
  • IDE
  • Lad∞nφ
  • BalφΦky
  • NovΘ komponenty a Üablony
  • Grafy
  • Sestavy
  • Active Insight
  • TDataSet
  • P°ekladaΦ
  • ProblΘmy (?)
  • Zßv∞ry
  • Epilog
  • Popis


Prolog

ôTak u₧ je to tady,ö pomyslel jsem si (poprvΘ), kdy₧ jsem v dubnu vylovil ze schrßnky obßlku s cizφmi razφtky, vytßhl z nφ leporelo s pozvßnkou na konferenci v²vojß°∙ v Delphi do Lond²na a doΦetl se v nφ, ₧e v cen∞ ·Φasti je i zßkladnφ verze Delphi 3. Okam₧it∞ jsem podrobil zkoumßnφ pen∞₧enku, zda jsem tam n∞kde nßhodou nezapomn∞l po₧adovan²ch 699 liber. Nebyly tam. NevyÜla ani druhß mo₧nost. èΘf se nenechal ₧ßdn²m zp∙sobem p°esv∞dΦit, ₧e mß ·Φast na onΘ konferenci je tou nejlepÜφ zßrukou prosperity naÜφ firmy do budoucφch let. ZpßteΦnφk.

ôTak u₧ je to tady,ö pomyslel jsem si (podruhΘ) o pßr dnφ pozd∞ji, kdy₧ jsem usedal do k°esla ve ΦtvrtΘ °ad∞ v konferenΦnφm sßle Palßce kultury na prezentaci produktu Delphi 3. T°i krabice s Delphi 3 (pr² prvnφ v republice) tr∙nily na zemi uprost°ed p≤dia a jedna z nich (jeÜt∞ jsem nev∞d∞l kterß) Φekala na m∞, a₧ budu z asi tisφcovky ·Φastnφk∙ jako jeden ze t°φ vylosovßn. Bohu₧el ani p°edem nastudovanß p°φruΦka ôWoodoo snadno a rychleö, aplikovanß v pr∙b∞hu losovßnφ na losujφcφ osoby i na tahanΘ losy, nefungovala podle m²ch p°edstav. P°φruΦku jsem vyhodil. P°iznßvßm, ₧e jsem potom zapochyboval, zda jsem se neunßhlil. U vÜech t°φ ta₧en²ch Φφsel byla p° ece jen v₧dy jedna cifra t°φmφstnΘho Φφsla shodnß s Φφslem na mΘm losu.

ôTak u₧ je to tady,ö pomyslel jsem si (pot°etφ), kdy₧ mi kolega zavolal, zda bych nem∞l chu¥ ud∞lat recenzi na produkt Delphi 3. Za hodinu u₧ u mne doma usedal do k°esla a z taÜky vyt ahoval na stolek krabici s Delphi 3 Professional.

Po zmφn∞nΘ prezentaci a zlomcφch informacφ zφskan²ch na Internetu jsem se na novou verzi t∞Üil jako dφt∞ na hraΦku slφbenou pod stromeΦek. SvΘ dojmy a poznatky z novΘ verze sd∞luji dßle.

Firma Borland ve verzi Delphi 3 pou₧φvß na rozdφl od p°edchozφ verze oznaΦenφ jednotliv²ch mutacφ jako Stadard, Professional a Client/Server. K nim je pak p°i°azena jeÜt∞ mutace Delphi/400 Client/Server Suite se specifick²mi komponentami a vazbami na systΘm IBM/400. Mutace Professional, o nφ₧ budu dßle psßt, odpovφdß tedy mutaci Developer ve verzi Delphi 2.

S TurboPascalem pracuji u₧ od jeho prvnφch verzφ. P°iznßvßm se, ₧e m∞ od verze k verzi v₧dy znovu a znovu p°ekvapovalo, co novΘho se dß jeÜt∞ pro pohodlφ psanφ a lad∞nφ program∙ vymyslet. Stejn∞ tak i v p°φpad∞ Delphi. P°echod od verze 1 k verzi 2 nep°inesl p°φliÜ mnoho pro pohodlφ programßtora, proto₧e zde byl hlavnφ v²znam v p°echodu od 16 k 32 bit∙m. Proto jsem neoΦekßval ani n∞jakΘ zßsadnφ zm∞ny ve verzi 3. SkuteΦnost je vÜak takovß, ₧e bych ji p°irovnal k malΘ technologickΘ revoluci. Co nßm Delphi 3 tedy nabφzφ.

Dokumentace

Prvnφ dojem po rozbalenφ byl, ₧e dokumentace je n∞jak mΘn∞, ne₧ tomu bylo u p°edchozφ verze. NicmΘn∞ byl to skuteΦn∞ jen dojem. P°esto₧e na poΦet je svazk∙ mΘn∞, po narovnßnφ na sebe byl sloupeΦek z verze 3 p°ece jen vyÜÜφ. Dokumentaci bych rozd∞lil na t°i Φßsti. Prvnφ popisuje, co vÜe je uvnit° a z Φeho je to slo₧eno û asi jako kdybyste dostali podrobn² popis vÜech souΦßstek n∞jakΘho stroje. Dokud bude vÜe fungovat tak, jak si p°edstavujete, a dokud nebudete pot°ebovat n∞jakΘ extra speciality, nebudete tento popis pot°ebovat. P°eΦtenφm takovΘho popisu p°edstavu o funkci stroje urΦit∞ nezφskßte. Tuto kategorii tvo°φ dvousvazkov² ôVisual Component Library Referenceö (v souΦtu asi o t°etinu tlustÜφ ne₧ p∙vodnφ jednosvazkov² ôReference Library Guideö), kde je kompletn∞ popsßno vÜe, na co byste mohli v Delphi narazit.

Druhß Φßst je v∞novßna tomu, jak s tφm zachßzet, aby to fungovalo. Do tΘto skupiny bych za°adil dalÜφ t°i manußly û ôObject Pascal Language Guideö, ôInterBase Serverö a ôUserÆs Guideö. ôUserÆs Guideö v sob∞ nynφ zahrnuje i d°φv∞jÜφ ôGetting Startedö.

Do t°etφ skupiny bych za°adil jedin² manußl typu co a jak se s tφm dß ud∞lat û ôDeveloperÆs Guideö. Ten v sob∞ shrnuje d°φv∞jÜφ ôComponent WriterÆs Guideö a ôDatabase Application DeveloperÆs Guideö, dopln∞n² nynφ kapitolami o v²voji aplikacφ pro Internet a intranet, a dßle kapitolami o tvorb∞ aplikacφ zalo₧en²ch na technologiφch COM a ActiveX.

Oproti p∙vodnφ dokumentaci odpadl manußl k produktu ReportSmith, jen₧ v tΘto verzi (asi dφky podstatnΘmu rozÜφ°enφ generßtoru sestav QuickReport û z 11 na 18 komponent) u₧ nenφ souΦßstφ distribuce.

Manußl ôInterBase Serverö se neliÜφ od p°edchozφ verze. Manußly ôVisual Component Library Referenceö a ôObject Pascal Language Guideö musφ podle svΘho charakteru nutn∞ p°edevÜφm kopφrovat a popisovat zm∞ny v definicφch a vlastnostech p°φsluÜn²ch prost°edk∙. V dalÜφch dvou manußlech doÜlo k velmi v²raznΘmu posunu k lepÜφmu. JeÜt∞ v minulΘ verzi byly tyto manußly , resp. jejich odpovφdajφcφ verze, spφÜe ôpopisem souΦßstekö. Pokud jste n∞kdy prochßzeli na Internetu informaΦnφ zdroje k Delphi, narazili jste jist∞ na celou °adu metodick²ch nßvod∙, vznikl²ch z dotaz∙ programßtor∙, posbφran²ch na specializovan²ch serverech, a z odpov∞dφ zkuÜen∞jÜφch koleg∙. P°ipadß mi, ₧e se auto°i manußl∙ nechali v tΘto verzi inspirovat do znaΦnΘ mφry prßv∞ t∞mito zdroji. Styl manußl∙ je velmi praktick² a obsa₧n², soust°ed∞n² na °eÜenφ obvykl²ch problΘm∙, na n∞₧ u₧ivatel v∞tÜinou narazφ. U₧ zaΦßtky nßzv∙ v∞tÜiny kapitol jsou dostateΦn∞ v²mluvnΘ: ôUnderstanding...ö, ôWorking with ...ö, ôUsing ...ö, ôCreating ...ö a podobn∞.

Jedinou mou p°ipomφnkou v tΘto chvφli je snad to, ₧e manußly nemajφ z°eteln∞ odd∞lenΘ popisy jednotliv²ch mutacφ. Tak se v manußlech pro mutaci Professional doΦtete o vÜech komponentßch a souvisejφcφch Φinnostech z mutace Client/Server. To sice nemusφ b²t ke Ükod∞, ale p°ivφtal bych alespo≥ v²razn∞jÜφ odd∞lenφ v textu nebo v samostatn²ch kapitolßch.

Instalace

Instalace, aΦ probφhß klasicky, mß p°ece jen pon∞kud nov² hßv (viz obr. 1). Po vlo₧enφ CD se spustφ nabφdka instalace vÜech Φty° produkt∙ û Delphi 3, Delphi 1, Local Interbase a Install Shield Expressu (verze 1.11 pro Delphi 3). Vlastnφ instalace (zvolil jsem ôFullö variantu) prob∞hla ve vÜech Φty°ech p°φpadech bez problΘm∙ b∞hem n∞kolika minut. P°ed instalacφ Delphi3 je t°eba odinstalovat p°φpadn∞ d°φve instalovan² MS Internet Control Pack a pak zazßlohovat soubor IDAPI32.CFG.

 

Obr. 1 û Nabφdka instalace.

 

Instalace Delphi 3 a Install Shield Expressu se provßdφ do samostatn²ch nov²ch adresß°∙ soub∞₧n∞ se starÜφmi verzemi produkt∙. Stßvajφcφ BDE se p°i instalaci Delphi3 p°epφÜe kompletn∞ novou verzφ 4.0. To s sebou nese jeden drobn² zßdrhel. Mßte-li n∞kde u zßkaznφka nainstalovßnu aplikaci pou₧φvajφcφ starÜφ verzi BDE, pak s novou verzφ programu, kompilovanou pod Delphi 3, musφte u zßkaznφka p°einstalovat i BDE. To vÜak samoz°ejm∞ majφ instalaΦnφ programy û jako t°eba Install Shield Express û ve svΘm popisu prßce.

SamotnΘ kompletnφ Delphi zaberou asi 100 MB diskovΘho prostoru.

 

IDE

Restartuji poΦφtaΦ a spouÜtφm Delphi 3. Prvnφ zm∞nou, kterou patrn∞ zaznamenßte, jsou ôsklen∞nßö tlaΦφtka a lß Microsoft Explorer. T°eba₧e se mi p∙vodnφ tlaΦφtka lφbila vφce, na novß jsem si zvykl velmi rychle. Majφ p°ece jen v²hodu v tom, ₧e je Φlov∞k jist∞jÜφ na co kliknout.

Jednou z nejvφce zd∙raz≥ovan²ch vlastnostφ je ôCode Insightö (slovnφk u pojmu ôInsightö nabφzφ docela v²sti₧nΘ ΦeskΘ slovo ôjasnoz°enφö, nicmΘn∞ mßm takov² pocit, ₧e se asi mezi programßtorskou a odbornou ve°ejnostφ p°φliÜ neujme), Φesky snad ôvhledö nebo ônßhledö do k≤du. V praxi to znamenß, ₧e p°φsluÜn² Code Expert nabφzφ v urΦit²ch situacφch b∞hem psanφ k≤du programu, co vÜechno lze napsat dßle, aby to bylo dob°e. Jde o nabφdky Φty° typ∙.

Prvnφ û Code Template Expert û nabφdne p°edem definovanΘ vzory konstrukcφ jazyka Pascal. JakΘkoli dalÜφ vlastnφ konstrukce si m∙₧ete pohodln∞ nadefinovat sami (menu Tools û Environment options, zßlo₧ka Code Insight û viz obr. 5). Obdobnß mo₧nost byla od jistΘ verze i u TurboPascalu: na klßvesovΘ zkratky jste si mohli napojit makra s definovan²mi konstrukcemi. Zde se

 

Obr 2 û Nabφdka p°eddefinovan²ch konstrukcφ.

 

situace opakuje, ale navφc s elegancφ, podpo°enou technologick²mi mo₧nostmi. V praxi bude mφt asi tento expert v∞tÜφ v²znam hlavn∞ pro zaΦφnajφcφ programßtory.

Druhou, v²znamn∞jÜφ mo₧nostφ je nabφdka metod, vlastnostφ a udßlostφ komponent (viz obr. 3) v pr∙b∞hu psanφ k≤du. Umφstφte-li kurzor za kvalifikßtor, pak vßm po stisknutφ Ctrl+Mezera p°edlo₧φ Code Completion Expert seznam vÜech mo₧nostφ toho, co m∙₧ete dßle uvΘst, aby to bylo sprßvnΘ. Z nabφdky si m∙₧ete vybrat bu∩ p°φmo posunem kurzoru a stisknutφm Enter, nebo poklepßnφm myÜi Φi postupn²m psanφm pφsmen. Kurzor se v tomto p°φpad∞ pohybuje po seznamu tak, aby souhlasilo, co jste napsali s nabφzenou mo₧nostφ. Pou₧itφ tohoto experta m∙₧e b²t i automatickΘ. V tomto p°φpad∞ pokud kurzor

 

Obr. 3 û Nabφdka Code Completion Experta pro komponentu TTable

 

z∙stane na mφst∞, kde lze experta vyvolat, dΘle, ne₧ Φinφ zvolen² Φasov² interval, aktivuje se automaticky. Osobn∞ tuto variantu nedoporuΦuji; mßlokdy toti₧ budete soustavn∞ p°i psanφ k≤du dostateΦn∞ rychlφ, aby nedochßzelo k necht∞nΘ aktivaci. Pokud by Ülo o komponentu, kterß je v hierarchii dostateΦn∞ vysoko, m∙₧e vßs kompletace nabφdky experta dost zdr₧ovat.

T°etφ û stejn∞ v²znamnou û mo₧nostφ je dopl≥ovßnφ parametr∙ u procedur, funkcφ a metod. Po zapsßnφ zßvorky nabφdne Code Parametr Expert p°esnou syntaxi parametr∙ p°φsluÜnΘ procedury, funkce Φi metody (viz obr. 4) a prßv∞ aktußlnφ parametr je zv²razn∞n.

Obr. 4 û Nabφdka Code Parametr Experta pro funkci Val.

 

O ΦtvrtΘ mo₧nosti ze skupiny ôCode Insightö se zmi≥uje kapitola ôLad∞nφö.

VeÜkerΘ volby pro tyto experty lze nastavit ve volb∞ menu Tools û Environment options na zßlo₧ce Code Insight (viz obr. 5). Svislß Φßra definovanß na obrßzku v t∞le makra ôcaseeö urΦuje umφst∞nφ kurzoru po vlo₧enφ makra do zdrojovΘho textu.

Obr. 5 û Nastavenφ parametr∙ Code Insight

 

Pokud jste programovali v Pascalu v prost°edφ DOS, urΦit∞ vßm v minul²ch verzφch Delphi chyb∞la slu₧ba, kterou poskytoval program Grep. Nynφ je u₧ k dispozici slu₧ba obdobnß. Vznikla rozÜφ°enφm po₧adavku vyhledßvßnφ zadanΘho textu v aktußlnφm okn∞ (viz obr. 6). P°epnutφm zßlo₧ky m∙₧ete nynφ vyhledßvat podobn∞, jako to Φinil Grep. V²sledek vyhledßnφ se objevuje ve stejnΘm okn∞ jako zprßvy o chybßch p°i p°ekladu a poklepßnφm nebo stisknutφm Ctrl+Enter na p°φsluÜnΘm °ßdku se p°esunete do odpovφdajφcφho mφsta ve zdrojovΘm textu. Toto okno lze v p°φpad∞ pot°eby zv∞tÜit na ·kor okna s k≤dem programu, ale jeho minimßlnφ velikost je t°i °ßdky. I kdy₧ jeho obsah vyma₧ete (klepnutφm prav²m tlaΦφtkem myÜi na tomto okn∞ zprßv), okno z∙stane do p°φÜtφho bezchybnΘho p°ekladu nebo do zruÜenφ a novΘ aktivace okna s k≤dem programu. A to znamenß bu∩ ztrßtu mφsta na obrazovce nebo ztrßtu Φasu deaktivacφ a aktivacφ okna. Trvalo delÜφ dobu, ne₧ jsem se


Obr. 6 û Hledßnφ textu ve zvolen²ch souborech.

dozv∞d∞l, ₧e okΘnko mohu vymazat i klepnutφm prav²m tlaΦφtkem myÜi, ale pro zm∞nu na hlavnφm editaΦnφm okn∞ a ôodznaΦenφmö volby Message View.

Lad∞nφ

PodstatnΘ zp°φjemn∞nφ prßce jsem zaznamenal i u lad∞nφ program∙. Zde je asi nejv²znamn∞jÜφ zm∞nou mo₧nost lad∞nφ DLL knihoven. Zatφmco d°φve bylo nutnΘ bu∩ ladit DLL knihovny s pomocφ specißlnφch program∙, nebo simulovat jejich funkci jako souΦßst b∞₧nΘho programu, nynφ m∙₧ete ladit stejn∞ jako ka₧d² jin² program. JedinΘ, co musφte ud∞lat navφc, je zadat nßzev a cestu k hostitelskΘ aplikaci (menu Run û Parameters), z nφ₧ se DLL spouÜtφ (viz obr. 7). Potom u₧ postupujete zcela stejn∞ jako p°i b∞₧nΘm lad∞nφ program∙.

 

Obr. 7 û Zadßnφ hostitelskΘ aplikace p°i lad∞nφ DLL.

 

P°i lad∞nφ program∙ je vßm nßpomocna v²Üe zmφn∞nß Φtvrtß novinka ôCode Insightö (tentokrßt sv²m p∙vodem z dφlny Microsoftu). Umφst∞nφ kurzoru p°i lad∞nφ programu na prom∞nnou, konstantu, v²raz Φi parametr vßm ihned zobrazφ jejich p°φsluÜnou hodnotu. To je ve srovnßnφ s pracφ s oknem

ôWatchesö mnohem elegantn∞jÜφ a rychlejÜφ. Existujφ vÜak situace, kdy se bez tohoto okna

 

Obr. 8 û Zobrazenφ hodnoty p°i lad∞nφ.

 

neobejdete. N∞kdy se vÜak stane û jako nap°φklad na obr. 8 û, ₧e informaΦnφ hodnota, kterou obdr₧φte, nebude skuteΦn∞ p°φliÜ vysokß. Zajφmal by m∞ spφÜe Φφseln² ekvivalent p°φsluÜnΘ konstanty.

Pro lad∞nφ je velmi p°φjemn² i nov² pßs na levΘ stran∞ okna zdrojovΘho programu. Obsahuje puntφky oznaΦujφcφ °ßdky, kde je mo₧nΘ umφstit breakpointy. Redukuje se tak mo₧nost umφst∞nφ breakpointu na nefunkΦnφ °ßdek, a hlavn∞ odpadajφ pokusy trefit se klepnutφm myÜi do sprßvnΘho mφsta pro zapnutφ

 

Obr. 9 û Ukßzka vyu₧itφ levΘho pßsu p°i lad∞nφ.

 

breakpointu, jak tomu bylo na p°edchozφch verzφch. V pr∙b∞hu lad∞nφ se na tomto pruhu nachßzφ ÜipeΦka, ukazujφcφ, kde prßv∞ program je, i znaΦky pro rychlΘ p°emφst∞nφ (Ctrl+K+n).

BalφΦky

P°ekladaΦ Pascalu firmy Borland byl v₧dy urΦitou chloubou firmy a znakem kvality û pro vysokou rychlost p°ekladu a dΘlku programu. Z∙stalo tomu tak i v p°φpad∞ vlajkovΘ lodi Delphi, a nejinak je tomu i u tΘto verze. Firma zde p°iÜla se ÜpiΦkovou technologiφ û s mo₧nostφ rozd∞lenφ p°elo₧enΘho programu na takzvanΘ balφΦky û ôpackagesö. P°edpoklßdßm, ₧e jde skuteΦn∞ jen o nßhodnou shodu okolnostφ, ₧e k nßm balφΦky od Borland∙ dorazily zhruba ve stejnΘ dob∞ jako ôbalφΦkyö naÜeho premiΘra. Co to v praxi znamenß? Je zajφmavΘ ₧e oba druhy balφΦk∙ majφ podobnΘ ·Φinky. Zatφmco balφΦky pana Klause p°edpoklßdajφ mφrnou dietu naÜim pen∞₧enkßm, balφΦky od Borland∙ znamenajφ, ₧e namφsto jednoho mnohasetkilobajtovΘho nebo megabajtovΘho programu dostanete po p°ekladu n∞kolik podstatn∞ huben∞jÜφch Φßstφ tΘho₧ programu. Pokud program nainstalujete u zßkaznφk∙ a Φasem zjistφte v programu chybu nebo pot°ebujete provΘst zm∞nu, staΦφ po oprav∞ a p°ekladu k zßkaznφkovi dopravit pouze ty balφΦky, jich₧ se zm∞na t²kala. V p°φpad∞ dvou, p∞ti nebo deseti zßkaznφk∙ to pro vßs nebude patrn∞ ₧ßdn² velk² p°φnos. Pokud budete mφt zßkaznφk∙ 50, 100 nebo vφce a budou navφc roztrouÜeni po celΘ republice, pak tuto technologii ocenφte podstatn∞ lΘpe. Jestli₧e mßte navφc mo₧nost zßkaznφk∙m takovΘto balφΦky nabφdnout p°es sφ¥ Internetu, pak balφΦky znamenajφ ohromnou ·sporu Φasu a pen∞z pro vßs i pro zßkaznφky. DalÜφ p°ednostφ je to, ₧e jednotlivΘ balφΦky mohou b²t sdφleny vφce aplikacemi. Pokud u jednoho zßkaznφka nainstalujete vφce r∙zn²ch aplikacφ, kterΘ pou₧φvajφ stejnΘ balφΦky, staΦφ ka₧d² balφΦek nainstalovat pouze jedenkrßt (v n∞jakΘm spoleΦn∞ dostupnΘm adresß°i û nap°φklad v domovskΘm adresß°i Windows), a celkov² souΦet rozsahu aplikacφ se m∙₧e velmi drasticky snφ₧it.

DalÜφ v²hodu mohou nalΘzt v balφΦcφch v²vojß°skΘ t²my. SpoleΦnΘ komponenty lze seskupit do balφΦk∙ a ty si pak p°edßvat ve form∞ kolekce balφΦk∙ û ôpackage colectionö . BalφΦkovßnφ je dovedeno d∙sledn∞ a₧ do konce i v samotnΘm Delphi. D°φv∞jÜφ VCL knihovna, kterß po dopln∞nφ dalÜφch komponent od t°etφch firem nebo zφskan²ch z Internetu zaΦφnala bobtnat do dvouû a t°φmegabajtov²ch rozm∞r∙, je dnes slo₧ena z elegantnφ °ady podstatn∞ menÜφch balφΦk∙.

Myslφm, ₧e nenφ nutnΘ hledat dalÜφ v²hody. Poj∩me se rad∞ji podφvat, jak vytvo°it ôbalφΦkovanΘö aplikace. Nebudete-li zatφm pom²Ület na tvorbu a definici vlastnφch balφΦk∙, pak vytvo°enφ aplikace rozd∞lenΘ na balφΦky bude pro vßs znamenat p°ibli₧n∞ 5 klepnutφ myÜφ navφc. V menu Project û Options (viz obr. 10) si zvolte zßlo₧ku Packages a zaÜkrtn∞te volbu

 

Obr. 10 û Nastavenφ prßce s balφΦky.

 

ôBuild with runtime packagesö. Pokud nynφ provedete p°eklad programu, zjistφte nap°φklad, ₧e program, kter² m∞l d°φve dΘlku kolem 700 Kb mß nynφ 140 Kb. V Φem je vtip v∞ci? U₧ jsem se zmφnil, ₧e n∞kdejÜφ VCL knihovna je dnes nahrazena balφΦky. Pokud tedy nynφ p°elo₧φte program s balφΦky, vlastnφ EXE obsahuje pouze to, co jste napsali a doplnili v programu vy sami ve form∞ procedur, konstant a prom∞nn²ch. VÜe ostatnφ co bylo dodßno s Delphi je obsa₧eno v balφΦcφch; ty je samoz°ejm∞ t°eba distribuovat s takto p°elo₧enou aplikacφ (pokud u₧ zßkaznφk nemß p°φsluÜnΘ balφΦky nainstalovßny). Na obr. 10 vidφte v hornφ Φßsti zßlo₧ky Packages seznam balφΦk∙ design-time, kterΘ jsou v IDE p°φtomny. Komponenty v balφΦku obsa₧enΘ se na palet∞ zobrazφ pouze tehdy, je-li p°φsluÜn² balφΦek zaÜkrtnut. OznaΦφte-li si n∞kter² balφΦek, klepnutφm na tlaΦφtko ôComponentsö si m∙₧ete zobrazit komponenty v balφΦku obsa₧enΘ.

JednotlivΘ balφΦky jsou specifickou formou DLL knihoven se specißlnφ ---p°φponou û DPL. O jejich volßnφ se v programu samoz°ejm∞ starat nemusφte. V programu nemusφte sami kv∙li balφΦk∙m provßd∞t ₧ßdnΘ zm∞ny. BalφΦky mohou b²t t°φ r∙zn²ch typ∙ û ôruntimeö, ôdesign-timeö a balφΦek, kter² spl≥uje nßle₧itosti obou typ∙. D∙vodem je skuteΦnost, ₧e balφΦky ôdesign-timeö musφ obsahovat navφc editor vlastnostφ, p°φpadn∞ editor vy₧adovan² komponentou a registraci komponenty. Forma ôruntimeö je o tyto p°φv∞Üky ochuzena, a tedy i kratÜφ. Design-time balφΦky jsou umφst∞ny v podknihovn∞ BIN knihovny Delphi a runtime balφΦky jsou po instalaci Delphi v adresß°i \Windows\System.

Budete-li chtφt vytvo°it vlastnφ balφΦek, mßte v polo₧ce Object repozitory (viz obr. 11) p°ipraven p°φsluÜn² vzor. Po jeho volb∞, a zadßnφ jmΘna a urΦenφ se objevφ editor balφΦk∙ (viz obr. 12), v n∞m₧

 

Obr. 11 û Object repozitory s nabφdkou vytvo°enφ balφΦku.

 

Obr. 12 û Editor balφΦk∙.

 

specifikujete unity, kterΘ mß balφΦek obsahovat (zßlo₧ka Contains) a odkazy na jinΘ balφΦky, kterΘ bude tento balφΦek pou₧φvat (zßlo₧ka Requires). Editor lze rovn∞₧ vyvolat z menu, pokud ve File û Open zvolφte soubor s p°φponou DPK. Volbou Options si m∙₧ete urΦit, zda chcete design-time Φi

Obr. 13 û Dopln∞nφ komponenty do balφΦku, p°φpadn∞ vytvo°enφ novΘho balφΦku.

runtime balφΦek, resp. balφΦek pro oba ·Φely. Volbou Compile balφΦek p°elo₧φte a doplnφte na paletu komponent. Mßte-li n∞kolik subsystΘm∙ v∞tÜφho systΘmu a chcete zajistit, aby u vÜech subsystΘm∙ bylo nap°φklad stejnΘ ovlßdßnφ a stejnΘ spoleΦnΘ Φinnosti, nenφ problΘm z t∞chto

 

Obr. 14 û Vytvo°enφ kolekce balφΦk∙ s dopln∞nφm skupiny souvisejφcφch soubor∙.

spoleΦn²ch Φinnostφ vytvo°it jeden nebo vφce balφΦk∙ a ·m∞rn∞ zmenÜit objem celΘho systΘmu. Pro dopln∞nφ komponenty do n∞jakΘho balφΦku staΦφ zvolit v menu Component û Install Component, nabφdne se vßm dialog (viz obr. 13), kter² po dopln∞nφ informacφ zajistφ vÜe pot°ebnΘ û prost°ednictvφm Editoru balφΦk∙ provede p°eklad a dopln∞nφ komponenty do balφΦku a na paletu.

Vlastnφ komponenty, kterΘ chcete pou₧φvat spoleΦn∞ v t²mu, m∙₧ete ulo₧it (p°φpadn∞ i spoleΦn∞ s dalÜφmi pot°ebn²mi soubory û nap°φklad DCU soubory) do kolekce balφΦk∙ (package collection) a ten pak distribuovat ostatnφm Φlen∙m nebo takto m∙₧ete nabφzet a prodßvat i vlastnφ v²tvory na trhu softwaru. Vytvo°it kolekci m∙₧ete programem PCE.EXE (adresß° BIN û viz obr. 14).

Do palety si pak doplnφte komponenty z kolekce volbou z menu Components û Install Packages. Vyberete-li si typ souboru s p°φponou DPC (Delphi Package Collection), vyvolß se pr∙vodce (Package Collection Installation Wizard) a provede vßs celou instalacφ kolekce, (viz obr. 15).

 

Obr. 15 û Pr∙vodce instalacφ kolekce.

 

NovΘ komponenty a Üablony

K dispozici majφ nynφ programßto°i celou °adu nov²ch komponent. O n∞kter²ch se jeÜt∞ zmφnφm podrobn∞ji. Te∩ jen uvedu p°ehled n∞kter²ch nov²ch samostatn²ch komponent.

TOpenPictureDialog û Oproti starÜφm verzφm, kde se provßd∞l v²b∞r naslepo a obrßzek byl vid∞t teprve po v²b∞ru, je v²b∞r pomocφ tΘto komponenty podstatn∞ komfortn∞jÜφ. Po oznaΦenφ souboru se p°φsluÜn² obrßzek zobrazφ ve vyhrazenΘm regionu a navφc je k dispozici tlaΦφtko, jφm₧ si m∙₧ete obraz prohlΘdnout v celΘ velikosti (viz obr. 16). P°φpustnΘ jsou typy obraz∙ BMP, EMF, WMF a ICO.

 

Obr. 16 û Open dialog pro obrßzky.

 

TSavePictureDialog û Plnφ opaΦnou funkci k Open dialogu obdobn²m zp∙sobem.

TDataTimePicker û Je komponenta pro v²b∞r a nastavenφ data a Φasu. Na nßsledujφcφm obrßzku (17) je p°φklad tΘto komponenty; jak vid∞t, nenφ ΦeÜtina zcela bez problΘm∙.

 

Obr. 17 û Komponenta DataTimePicker

 

TStaticText û Jde o obdobu komponenty TLabel, ale namφsto TGraphicControl je rodiΦem TwinControl; komponenta mß tedy sv∙j ovladaΦ (handle).

TSplitter û Tato komponenta umo₧≥uje dynamickΘ rozΦlen∞nφ panelu.

TAnimate û S touto komponentou m∙₧ete zobrazovat animovanΘ sekvence. Sekvence obsa₧enΘ v Shell32.dll jsou u₧ standardn∞ p°eddefinovßny. P°φklad je na obr. 18.

Obr. 18 û P°φklad animovanΘ sekvence aviRecycleFile.

 

TCheckListBox û V tomto v²b∞rovΘm seznamu si m∙₧ete ka₧dou polo₧ku oznaΦit zaÜkrtnutφm (viz obr. 19).

TDBRichEdit û Text po°φzen² v tomto formßtu lze prost°ednictvφm tΘto komponenty ulo₧it do databßze jako BLOB.

 

Obr. 19 û P°φklad komponenty TCheckListBox.

 

TCoolBar û Je to komponenta, kterß slou₧φ jako kontejner pro pßsy (Bands û TCoolBands), na ne₧ lze umφs¥ovat ovlßdacφ prvky. Vzhledem k tomu, ₧e k pßsu m∙₧e b²t p°i°azen v₧dy jen jedin² prvek, lze k pßsu p°i°adit nap°φklad dßle uveden² ToolBar; na n∞j pak m∙₧eme umφstit libovoln² poΦet prvk∙ (viz obr. 20).

TToolBar û Slou₧φ k umφs¥ovßnφ ovlßdacφch prvk∙.

 

Obr. 20 û Vyu₧itφ komponent ToolBar a CoolBar.

V menu narazφte v souvislosti s komponentami na dalÜφ z nov²ch voleb û Create Component Template. Volba se aktivuje teprve v okam₧iku, kdy umφstφte na formulß° n∞jakΘ komponenty. Mßte-li n∞jakou

Obr. 21 û Nastavenφ nßzvu Üablony pro skupinu komponent.

oblφbenou kompozici komponent, kterou sestavujete Φast∞ji, m∙₧ete si tuto kombinaci p°ipravit na formulß°, zvolit v menu Component û Create Component Template a po volb∞ jmΘna (viz obr. 21) takto definovanΘ Üablony a po v²b∞ru ikony a nßzvu zßlo₧ky (implicitn∞ Template) se Üablona ulo₧φ a objevφ na palet∞.

 

Grafy

V minulΘ verzi byla k dispozici komponenta pro tvorbu graf∙ na palet∞ OCX. V tΘto verzi p°ibyla novß komponenta pro tvorbu graf∙, a to hned ve t°ech mutacφch:

û TChart pro obecn∞ nezßvisle zadßvanΘ a vytvß°enΘ grafy,

û TDBChart pro tvorbu graf∙ vßzan²ch na obsah databßze a

û TQRChart pro tvorbu graf∙ v sestavßch QReport.

Nej·pln∞jÜφ p°edstavu toho, co lze pomocφ t∞chto komponent vytvo°it, zφskßte kompilacφ a spuÜt∞nφm demonstraΦnφho p°φkladu, kter² se dodßvß s Delphi. Vizualizace dat je touto komponentou dovedena

 

Obr. 22 û R∙znΘ tvary pro zobrazenφ hodnot jednotliv²ch sΘriφ.

skuteΦn∞ a₧ k mistrovstvφ. Uve∩me si alespo≥ struΦn∞ pßr zßkladnφch mo₧nostφ, kterΘ komponenta mß.

  • Zobrazenφ graf∙ ve 2D nebo 3D.
  • Animace graf∙ û grafy mohou zobrazovat pr∙b∞₧n∞ dodßvanΘ hodnoty v zßvislosti na Φase, p°φpadn∞ se m∙₧ete pohybovat po databßzi a plynule posouvat v grafu zobrazenΘ hodnoty v zßvislosti na pohybu v databßzi.
  • Animovan² zoom libovoln²ch Φßstφ graf∙ û vybranΘ pole se plynule zv∞tÜφ a vyplnφ celΘ okno grafu. Do p∙vodnφ velikosti se vrßtφte obrßcen²m zadßnφm vybranΘho pole (vybφrat zaΦnete prav²m dolnφm rohem a skonΦφte lev²m hornφm.)
  • Flexibilnφ popisy û umφst∞nφ a zp∙sob popisu zßle₧φ jen na vaÜφ volb∞.
  • Ovlßdßnφ myÜφ i z klßvesnice.
  • Zhruba 11 r∙zn²ch typ∙ graf∙ dovoluje jeÜt∞ celou °adu modifikacφ a nastavenφ vzhledu. Namφsto sloupeΦk∙ m∙₧ete mφt pyramidy, obrßcenΘ pyramidy, cylindry a mnoho jin²ch tvar∙, dokonce m∙₧ete tvary kombinovat na jednom grafu tak, ₧e ka₧dß sΘrie mß jin² tvar (viz obr. 22).
  • Grafy lze tisknout nebo uklßdat jako BMP nebo WMF.
  • Vykreslovßnφ os m∙₧e b²t implicitnφ nebo si m∙₧ete sami definovat jejich vykreslenφ. Lze pou₧φt logaritmickou stupnici.
  • Volba barev a ·hl∙ pohled∙ p°i 3D. Pozadφ m∙₧e b²t barevnΘ nebo je m∙₧e tvo°it obrßzek.

Ve v²Φtu bychom mohli jeÜt∞ dßle pokraΦovat.

V menu Files û New..., zßlo₧ka Bussines, je k dispozici pr∙vodce k vytvß°enφ formulß°e s grafem (viz obr. 23). Zvolφte-li si variantu s propojenφm na databßzi, pak m∙₧ete bez naprogramovßnφ jedinΘho

 

Obr. 23 û Pr∙vodce pro vytvo°enφ formulß°e s grafem.

 

pφsmenka zφskat formulß° s grafem obdobn²m jako na obr. 24.

Pokud pot°ebujete dßle provßd∞t ·pravy, poklepßnφm na graf, resp. z menu po klepnutφ prav²m tlaΦφtkem vyvolßte pr∙vodce a pak upravφte a definujete °adu dalÜφch parametr∙ grafu (viz obr. 25).

 

Obr. 24 û P°φklad grafu vytvo°enΘho z databßze pr∙vodcem.

Obr. 25 û Pr∙vodce k ·prav∞ vlastnostφ graf∙.

 

Flexibilita komponenty je skuteΦn∞ velkß a p°i vhodnΘ volb∞ odpovφdajφcφ aplikovanΘ oblasti se vytvo°enΘ grafy mohou stßt v²born²m pomocnφkem p°i rozhodovßnφ managementu organizacφ.

 

Sestavy

Jak jsem se u₧ zmφnil na zaΦßtku, odpadl z tΘto verze Delphi samostatn² program, generßtor sestav

Obr. 26 û Tvorba v²raz∙ v QuickReportu

ReportSmith. Na palet∞ QReport vzrostl poΦet komponent na 18. Krom∞ faktu, ₧e se svou aplikacφ nemusφte distribuovat dalÜφ soubory navφc, by m∞ly vφcemΘn∞ v²hody p°evß₧it. Pokud budete p°ece jen ReportSmith postrßdat a vlastnφte jej z p°edchozφch verzφ, je ve VCL pro zp∞tnou kompatibilitu ponechßna komponenta Treport, t°eba₧e skrytß na palet∞ v DataAccess.

Podstatnou zm∞nou proÜla komponenta QRExpr (d°φve QRDBCalc). Obsahuje kompletnφ mechanismus û pr∙vodce û pro tvorbu vÜech mo₧n²ch druh∙ v²raz∙ (viz obr. 26). Krom∞ konstant

 

Obr. 27 - ╚ßst nabφdky pr∙vodc∙ pro vytvo°enφ sestavy.

 

m∙₧ete pou₧φvat polo₧ky z p°ipojen²ch databßzφ a 20 r∙zn²ch funkcφ. Ty si m∙₧ete zobrazit podle abecedy nebo podle kategoriφ, ale je zde z°ejm∞ ponechßna rezerva do budoucnosti. Nap°φklad pod ôMath & trigö jsou sice t°i matematickΘ, ale ₧ßdnß trigonometrickß funkce a ôDatabaseö zatφm neobsahuje funkci ₧ßdnou.

 

Obr. 28 û P°φklad jednoho z pr∙vodc∙ pro vytvo°enφ sestavy.

 

P°ibyly zde komponenty:

  • pro prßci s texty typu rich (QRRichText a QRDBRichText ),
  • pro prßci s obrßzky (QRImage a QRDBImage) ve formßtech BMP, ICO, EMF a WMF,
  • QRChildBand je komponenta s, kterou (jednu nebo i vφce) lze z°et∞zit s komponentou QRBand. Takto se dajφ nap°φklad opticky odd∞lit dlouhΘ pßsy dat, p°echßzejφcφ p°es vφce strßnek.
  • QRCompositeReport je komponenta zapouzd°ujφcφ jinΘ sestavy, s nimi₧ pak lze zachßzet jako s jednφm celkem û jednou sestavou.
  • QRChart byla zmφn∞na v p°edchozφm odstavci.

 

Vytvo°it sestavu s pomocφ QReports lze velmi rychle a jednoduÜe. K dispozici je celß °ada pr∙vodc∙ (viz obr. 27 a 28 û menu File û New.., zßlo₧ky New, Forms a Bussines); m∙₧ete tak vytvß°et r∙znΘ typy sestav, od jednoduch²ch p°ehled∙ p°es ômaster-detailö po nßlepky (labels).

 

Active Insight

V 70. letech se programovßnφ jevilo jako celkem pr∙zraΦn² a jasn² proces. ProblΘmy slo₧itosti a algoritmizovatelnosti byly sluÜn∞ definovßny. Zm∞ny v programovßnφ probφhaly spφÜe na kvantitativnφ ·rovni, danΘ technick²mi mo₧nostmi tΘ doby. Pak se vÜak prolomily bariΘry hardwaru, vznikla PC a s nimi se zaΦala roztßΦet spirßla ôlepÜφ hardware --> lepÜφ software -->lepÜφ hardware...ö. Po Jacksonov²ch a dalÜφch metodßch se potichu a nenßpadn∞ zrodily objekty a objektovΘ programovßnφ a odstartovaly novou revoluci v softwaru. Logika prßce a pou₧itφ objekt∙ nakonec

 

Obr. 29 û Repository s pr∙vodci souvisejφcφmi s COM a ActiveX.

 

vy·stila v dneÜnφ dob∞ do takov²ch pojm∙, jako jsou OLE, COM, DCOM, OCX, ActiveX, CORBA, Φi do podobn²ch zßzrak∙. Ty sice u₧ivateli na pozadφ p°inßÜejφ v²bornou pomoc v podob∞ zp°φjemn∞nφ, zjednoduÜenφ a zrychlenφ prßce, staly se vÜak tak trochu noΦnφ m∙rou v∞tÜiny programßtor∙, kte°φ by si je p°ßli zabudovat do sv²ch aplikacφ. Delphi v tΘto verzi vßm pom∙₧e tyto noΦnφ m∙ry zahnat. V Delphi 3 je mo₧nΘ velmi rychle a efektivn∞ vytvß°et ActiveX komponenty a COM objekty. Takto vytvo°enΘ komponenty a objekty lze bez problΘm∙ pou₧φvat i v celΘ °ad∞ dalÜφch v²vojov²ch prost°edk∙ a jazyk∙ (PowerBuilder, IntraBuilder, Java, Visual C++, Visual Basic a pod.). P°itom takto vytvo°enΘ komponenty a objekty nepot°ebujφ ke svΘ prßci ₧ßdnΘ dalÜφ runtime DLL knihovny.

P°i nßvrhu vßm op∞t poslou₧φ celß °ada pr∙vodc∙ (viz obr. 29).

Podstatnou roli pro sprßvnou funkci OLE a ActiveX hraje ôtypovß knihovnaö (Type library). Jde o soubor, kter² obsahuje v∞tÜinu d∙le₧it²ch informace pro sprßvnΘ ôspojenφ se sv∞temö pro OLE a ActiveX a kter² je, pokud jde o OLE server, v₧dy generovßn pro ka₧d² nov² objekt.

Jeden z pr∙vodc∙ je specializovßn na vytvß°enφ a editaci obsahu prßv∞ t∞chto knihoven (viz obr. 30). Jde podobn∞ jako u IDE o dvoucestn² nßstroj. Zde definovanΘ informace slou₧φ k

Obr. 30 û Prßce s ôType Libraryö.

generovßnφ deklaracφ v rozhranφ Φßsti programu v Pascalu pro COM objekt a jsou ulo₧eny jako samostatn² soubor s p°φponou TLB nebo jako Φßst souboru zdroj∙ (resources).

Uka₧me si na p°φkladu, jak jednoduÜe lze s pr∙vodcem vytvo°it ActiveX objekt zobrazit jej na HTML strßnce.

1. Po spuÜt∞nφ Delphi zvolte File û New .., potΘ zßlo₧ku ActiveX a ActiveForm. Odsouhlaste implicitnφ nastavenφ jmen:

Obr. 31 - Nastavenφ jmen pro ActiveForm.

a odsouhlaste i varovßnφ, je₧ bude potΘ nßsledovat.

2. Na formulß° umφst∞te z palety Additional komponentu Chart a komponentu Button z palety Standard.

3. Poklepßnφm na okno komponenty Chart vyvolejte pr∙vodce pro tuto komponentu (viz obr. 25), tlaΦφtkem Add nastavte jednu sΘrii dat, vyberte si typ grafu a tlaΦφtkem Close ukonΦete pr∙vodce.

4. Poklepßnφm na tlaΦφtko vyvolejte editaΦnφ okno a p°ipravenou proceduru upravte nap°φklad takto:

procedure TActiveFormX.Button1Click(Sender: TObject);

var

i, j: Byte;

begin

i:=Random(10)+1;

{i urΦuje poΦet hodnot v sΘrii}

Series1.Clear;

{vyma₧e p°edchozφ zobrazenΘ hodnoty v sΘrii}

for j:=1 to i do

Series1.Add(Random(100), 'X'+IntToStr(j), Random(32000)); {hodnota, nadpis, barva}

{Naplnφ sΘrii nov²mi hodnotami û 1. parametr je hodnota,}

{2. je text u hodnoty a 3. je nßhodn∞ urΦenß barva sΘrie }

end

5. Zvolte v menu Project û Web Deployment Options a po p°ekladu si Delphi od vßs vy₧ßdajφ adresß°e, kam majφ b²t ulo₧eny vytvß°enΘ soubory. SouΦßstφ po₧adovan²ch informacφ je i celß °ada

 

Obr. 32 û Nastavenφ voleb pro kompletaci nov∞ vytvß°enΘho ActiveX.

 

dalÜφch voleb, kterΘ souvisejφ s kompletacφ koneΦnΘho produktu (CAB-komprese, CAB-komprese p°φpadn²ch balφΦk∙, definice dalÜφch soubor∙ souvisejφcφch s aplikacφ, p°idßnφ ôcode signö pro zajiÜt∞nφ autorstvφ a ochrany p°ed modifikacφ a pod. ), pokud chcete produkt Üφ°it, ale v tomto okam₧iku je m∙₧eme opomenout a definovat jen informace v okn∞ ôDirectories...ö:6. Po volb∞ Project - Web Deploy jsou vygenerovßny do zvolen²ch adresß°∙ soubory s p°φponou OCX a HTM. Testovacφ strßnka je p°ipravena û m∙₧ete na soubor s p°φponou HTM aplikovat prohlφ₧eΦ (nap°φklad Microsoft Explorer) a vyzkouÜet si v²sledek vaÜφ prßce.

 

TDataSet

Pokud jste cht∞li v p°edchozφ verzi vytvo°it komponentu nebo knihovnu, kterß by umo₧≥ovala zpracovßvat specifickou databßzi a obchßzela p°itom BDE, byl to problΘm, t°eba₧e v²hodou byla skuteΦnost, ₧e jste s aplikacφ nemuseli distribuovat BDE. Na velk² problΘm jste vÜak narazili v okam₧iku, kdy jste museli obchßzet celou °adu mφst, kde TDataSet zßvisela na BDE. V tΘto verzi je situace podstatn∞ jednoduÜÜφ. Hierarchie databßzov²ch komponent nynφ vypadß nßsledovn∞:

 

Obr. 33 û Hierarchie databßzov²ch komponent.

 

D∙le₧itΘ je, ₧e TDataSet je pouze ôvirtualizovanßö databßze, slou₧φcφ pouze jako ancestor pro dalÜφ objekty. Mß metody deklarovßny jako virtual nebo abstract a nepou₧φvß ₧ßdnΘ metody BDE. VeÜkerΘ d°φv∞jÜφ zßvislosti na BDE jsou nynφ p°eneseny na potomky û TBDEDataSet a TDBDataSet.

 

Obr. 34 û P°φklad aplikace TDataSet û textov² soubor jako databßze.

P∞knou nßzornou ukßzkou vyu₧itφ komponenty TDataSet je demonstraΦnφ p°φklad dodßvan² s Delphi 3 v adresß°i Delphi 3\Demos\DB\TEXTDATA. Pomocφ TDataSet je vytvo°ena komponenta, kterß chßpe textov² soubor jako databßzi zßznam∙ û °et∞zc∙ (1 °et∞zec = jeden zßznam) a ôobalujeö takto definovanou databßzi vÜemi zßkladnφmi vlastnostmi komponenty TDataSet (viz obr. 34).

(V jednom z Φlßnk∙ o Delphi 3 v ôThe Delphi Magazineö z 20. dubna 1997 pφÜe Brian Long û d°φv∞jÜφ v²vojß° u firmy Borland UK û ôIt would be nice to see an in-depth article on writing a BDE replacement using this new architecture that covers more than the Borland-supplied information. Would anybody care to take up the challenge?ö)

 

P°ekladaΦ

V p°ekladaΦi je nynφ celß °ada novinek. Souvisejφ jednak se zm∞nami v Delphi 3 a jednak s pokraΦujφcφ snahou o vylepÜenφ podpory prßce v²vojß°∙.

Mezi nejsympatiΦt∞jÜφ vylepÜenφ pat°φ p°edevÜφm prßce s tabulkami °et∞zc∙ ve zdrojφch. D°φve se obvykle definovaly unity s konstantami odkazujφcφmi na stringy, kterΘ pak byly definovßny v RC skriptech a spojovaly konstanty s konkrΘtnφmi texty, a kterΘ se pak kompilovaly do RES soubor∙ a zp∞tn∞ se prost°ednictvφm direktiv $R ôp°itahovalyö do programu. Te∩ je tento systΘm °eÜen podstatn∞ elegantn∞ji. Stejn∞ jako definujete var, type nebo const prom∞nnΘ, typy a konstanty, definujete v tomto p°φpad∞ pomocφ rezervovanΘho slova resourcestring °et∞zce zdroj∙. Zkuste nap°φklad umφstit v novΘ aplikaci na formulß° tlaΦφtko a do sekce interface umφst∞te nßsledujφcφ text:

resourcestring

nula = 'nula';

jedna = 'jedna';

dva = 'dv∞';

tri = 't°i';

Klepn∞te na tlaΦφtko a do p°φsluÜnΘ procedury dopl≥te:

procedure TForm1.Button1Click(Sender: TObject);

begin

case Button1.Tag of

0: Button1.Caption:=nula;

1: Button1.Caption:=jedna;

2: Button1.Caption:=dva;

3: Button1.Caption:=tri;

end;

Button1.Tag:=(Button1.Tag+1)mod 4;

end;

P°ekladaΦ v tomto p°φpad∞ p°id∞lφ °et∞zc∙m sßm jednoznaΦnß Φφsla a zkompiluje do EXE. Pokud budete chtφt pozd∞ji °et∞zce zdroj∙ editovat, mßte mo₧nost pou₧φt resource editor na EXE soubor stejn∞ jako v p°edchozφch p°φpadech. Je op∞t vid∞t, ₧e s ΦeÜtinou to nenφ zcela bezproblΘmovΘ (viz obr. 35).

 

Obr. 35 û Editace °et∞zc∙ prost°ednictvφm programu Resource editor.

 

DalÜφ podstatnß zm∞na souvisφ s balφΦky. V souvislosti s nimi jsou zavedena t°i novß rezervovanß slova û package, requires a contains û a dßle celß °ada direktiv.

 

Do unity System p°ibyla novß standardnφ procedura Assertions, testujφcφ sprßvnost logickΘho v²razu:

Assert(expr: Boolean [; msg: string]);

P°i chybnΘm v²razu vyvolß procedura v²jimku EAssertionFailed (deklarovßna v unit∞ Sysutils), a nenφ-li zachycena, zp∙sobφ runtime chybu 227.

Direktivou kompilßtoru

$ASSERTIONS ON/OFF

resp.

$C +/-

lze zapnout Φi potlaΦit generovßnφ k≤du pro test.

 

ProblΘmy (?)

Prakticky b∞hem celΘho testovßnφ jsem nenarazil na ₧ßdn² problΘm, jen₧ by se t²kal funkce systΘmu jako takovΘho. O n∞kter²ch drobn∞jÜφch v²hradßch jsem se zmφnil v textu.

O novΘ struktu°e dokumentace jsem psal na zaΦßtku. Trochu p°ekvapiv∞ je nap°φklad podrobn² p°ehled direktiv kompilßtoru a volby ôcomand-lineö verze p°ekladaΦe uveden v apendixu p°φruΦky ôUserÆs Guideö. Hledal bych jej spφÜe v ôObject Pascal Language Guideö. V tomto manußlu mi pro zm∞nu chyb∞jφ v ·vodnφm p°ehledu rezervovan²ch slov a direktiv (strany 2û2, 2û3) ty, kterΘ souvisejφ s balφΦky. Je o nich zmφnka a₧ v kapitole o balφΦcφch.

V dokumentaci k verzi Delphi 2 jsem v souvislosti se souΦasn²m oznaΦenφm vφce °ßdk∙ v tabulce (DBGrid) nenaÜel nikde pojem Bookmarklist (seznam ôzßlo₧ekö bookmark, odkazujφcφch na zßznamy v oznaΦen²ch °ßdcφch) a musel jsem jφt pro jeho implementaci do zdrojovΘho textu. Po obdr₧enφ recenzovanΘ verze jsem proto v dokumentaci tento pojem hledal, bohu₧el op∞t marn∞, a to i p°esto, ₧e nap°φklad ve Visual Component Library Reference û Volume 1 je u TCustomDBgrid (u property SelectedRows) odkaz na objekt TBookmarkList, po tomto objektu nenφ jinak ₧ßdnΘ stopy ani v dokumentaci, ani v systΘmu help∙.

P°i prochßzenφ helpy jsem n∞kolikrßt narazil na hlßÜenφ:

resp.

èlo vÜak prakticky v₧dy jen o chybu odkazu, proto₧e jinou cestou jsem se k po₧adovanΘ informaci obvykle dostal.

V²Üe zmφn∞nΘ problΘmy jsou s hlediska celΘho systΘmu skuteΦn∞ jen drobnosti, na n∞₧ jsem narazil v pr∙b∞hu p°φpravy recenze a je₧ v praxi neznamenajφ ₧ßdn² podstatn² problΘm.

P°i lad∞nφ, pokud mohu poradit, vyu₧φvejte v maximßlnφ mφ°e mo₧nostφ, kterΘ nabφzφ konstrukce try..except..end p°i prßci s BDE. Pokud takto neodchytφte chyby vzniklΘ nap°φklad vadnou konstrukcφ SQL p°φkazu, chybnou konverzφ polo₧ky p°i zßpisu do tabulky nebo odkazem na polo₧ku tabulky neexistujφcφm jmΘnem, dostanete obvykle jeÜt∞ hlßÜenφ o chyb∞, ale Φasto se nepoda°φ (a to pova₧uji za v∞tÜφ chybu) prost°edφ Delphi po chyb∞ zotavit a musφte jej ukonΦit a spustit znovu.

 

Zßv∞ry

Delphi ve verzi 3 je prost°edek, kter² zcela jist∞ vyhovφ i v²vojß°∙m s nejvyÜÜφmi nßroky. Jde o komplexnφ prost°edek vhodn² jak pro v²voj rozsßhl²ch a komplexnφch systΘm∙, tak pro malΘ specializovanΘ prost°edφ. Flexibilitou sv²ch prost°edk∙ je Delphi 3 dnes schopno pokr²t prakticky jakΘkoli po₧adavky, a¥ u₧ jde o hromadnΘ zpracovßnφ dat pro velk² poΦet koncov²ch u₧ivatel∙ nebo rychlΘ poskytnutφ komplexnφch souhrnn²ch informacφ s mo₧nostφ propojenφ vφce databßzφ pro vrcholov² management organizacφ. Technologie pou₧itΘ pro kompletaci v²sledn²ch aplikacφ dovolujφ orientovat se jak na nejmodern∞jÜφ souΦasnΘ v²vojovΘ trendy û internetovΘ aplikace, minimalizace rozsahu produktu, rozd∞lenφ na menÜφ Φßsti s mo₧nostφ vyu₧itφ vφce aplikacemi, tak i na konzervativn∞jÜφ metody p°i lokßlnφch aplikacφch. Vφcenßsobnß pou₧itelnost komponent, velmi silnß podpora tvorby prvk∙ OLE a ActiveX, koncepce Üablon a repozitory p°edurΦujφ tento v²vojov² prost°edek k prßci t²m∙. V jednoduÜÜφch p°φpadech lze s pomocφ pr∙vodc∙ vytvo°it praktickou aplikaci doslova za n∞kolik minut, ve slo₧it∞jÜφch p°φpadech pak aplikace vygenerovanß pr∙vodcem poslou₧φ jako velmi dobr² zßklad pro dalÜφ prßci.

V celΘ koncepci Delphi 3 se dob°e odrß₧φ zßkladnφ ôGolden Gateö strategie firmy Borland poslednφ doby û snaha o propojenφ vÜech mo₧n²ch prost°edk∙ navzßjem û a stejn∞ dob°e zapadß Delphi do nov∞ koncipovanΘ (na 8. v²roΦnφ konferenci 12.û16. Φervence v Tennessee) strategie Info Net.

Z hlediska u₧ivatele je hlavnφ v²hodou mal² rozsah v²slednΘ aplikace a rychlost (danΘ kompletnφm p°ekladem aplikace do nativnφho k≤du) a mo₧nost d∞lit aplikace na menÜφ Φßsti. Z hlediska napojenφ aplikace na databßze je to pak velkß flexibilita BDE a rozr∙stajφcφ se okruh nativnφch ovladaΦ∙ (v tΘto verzi je to ovladaΦ pro FoxPro a Access).

Pro management organizacφ je velmi siln²m prost°edkem tvorba sestav, a hlavn∞ grafick²ch v²stup∙, kterΘ lze operativn∞ upravovat podle okam₧it²ch pot°eb.

Pokud si tedy chcete koupit vhodn² prost°edek k v²voji vlastnφ aplikace a mßte zkuÜenosti s Pascalem, resp. malΘ zkuÜenosti s programovacφmi jazyky, pak by vaÜe rozhodnutφ skuteΦn∞ nem∞lo b²t problΘmem.

 

Epilog

ôTak u₧ je to tady,ö pomyslel jsem si (poΦtvrtΘ a u₧ definitivn∞ naposledy), kdy₧ jsem koneΦn∞ dopsal text recenze a odlo₧il pero, vlastn∞ klßvesnici. Ne ₧e by mi tφm zrovna spadl kßmen ze srdce, ale p°eci jen je to jistß ·leva û dokonΦit n∞jakou prßci. ôKoneΦn∞ p∙jdu zase jednou spßt s Φistou a klidnou hlavou,ö °ekl jsem si. Zm²lil jsem se. Hned prvnφ noc jsem m∞l takov² zvlßÜtnφ sen. Zdßlo se mi, ₧e jsem se vracel z prßce dom∙ a ve schrßnce jsem nalezl obßlku s cizφmi razφtky. Vytßhl jsem z nφ leporelo s pozvßnkou na konferenci v²vojß°∙ v Delphi do Lond²na a doΦetl se v nφ, ₧e v cen∞ ·Φasti je i zßkladnφ verze Delphi 4 .....

Ji°φ Ventluka

 

Popis

Delphi 3.0 : RAD nßstroj pro v²voj aplikacφ v 32-bitovΘm prost°edφ.

Po₧adavky : Windows 95/NT, min. PC 486, 16 MB RAM, CD-ROM, cca 100 MB na disku.

V²robce/Poskytl : Borland

Cena : Standard 5610 KΦ

Professional 28020 KΦ

Client/Server 88330 KΦ