TOMÁ HOLAN
DELPHI v pøíkladech Praha 2001
Tomá Holan
DELPHI V PØÍKLADECH Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmnoována jakoukoli formou (tisk, fotokopie, mikrofilm nebo jiný postup), zadána do informaèního systému nebo pøenáena v jiné formì èi jinými prostøedky. Autor a nakladatelství nepøejímají záruku za správnost titìných materiálù. Pøedkládané informace jsou zveøejnìny bez ohledu na pøípadné patenty tøetích osob. Nároky na odkodnìní na základì zmìn, chyb nebo vynechání jsou zásadnì vylouèeny. Vechny registrované nebo jiné obchodní známky pouité v této knize jsou majetkem jejich vlastníkù. Uvedením nejsou zpochybnìna z toho vyplývající vlastnická práva. Vekerá práva vyhrazena © Tomá Holan, Praha 2001 Nakladatelství BEN technická literatura, Vìínova 5, Praha 10 Tomá Holan: DELPHI V PØÍKLADECH BEN technická literatura, Praha 2001 2. vydání (1. v nakladatelství BEN technická literatura) ISBN 80-7300-033-4
Není to uèebnice. Snail jsem se vyhýbat pøílinému povídání, pokynùm, co kde zmáèknout a taky vysvìtlování. Tedy, vysvìtlování tu je, ale asi tak na úrovni návodu k pouití televize e potøebujete pøipojit anténu a tak. Ani slovo o elektøinì a magnetizmu ani o íøení vlnìní. Mám pro to své dùvody. Programování v Delphi je jako plavba na lodi nad temnými hlubinami Windows. A Delphi nám dovolují starat se co nejménì o to, v èem to vlastnì plaveme. Povauji to za veliké dobrodiní, nejen od Delphi, ale od objektového programování vùbec, e se o spoustu vìcí musíme zaèít zajímat a kdy nám pøestane vyhovovat, jak to pracuje. A nakonec nejen v programování tøeba nae tìla urèitì dìlají spoustu vìcí, o kterých nemáme potuchy a spoléháme na to, e to nìjak rozumnì funguje. Právì tak Delphi a programy, které v nich napíeme, respektive jejich èásti ty, o které se nestaráme. Je to sbírka prográmkù, které by mìly ilustrovat to, co mi pøilo dobré znát. Rozhodnì tam nejsou ukázány vechny monosti ani vechny komponenty, i kdy nìkteré jsou opravdu pìkné. Ale zase nemá, myslím, smysl uèit se nìco, co moná nepouiji. Prográmky jsou pøiloeny i v pøeloené formì, take nepotøebujete mít nainstalovány Delphi, abyste je mohli spustit (jen pro databázové programy potøebujete nainstalovat databázovou knihovnu a databázi DBDEMOS dodávanou s DELPHI). Je tøeba také øíci, e a budete psát v Delphi své programy, mìli byste formuláøùm i komponentám dávat rozumná jména normálnì to dìlám a tady jsem ponechal automatické pojmenování napø. Button1, Button2
jen proto, abych mìnil opravdu pouze vlastnosti nezbytné pro funkci toho kterého pøíkladu. V úvodu kníek bývá podìkování osobám, které ètenáø nezná i já bych kromì Doc. RNDr. Pavla Tõpfera, CSc. a Doc. RNDr. Zdeòka Rence, CSc., bez jeho ochotné pomoci by tento text nejspí nevznikl, chtìl podìkovat: Janì, Anièce, Lie, Danì, Danì, Sae, Pavle, Janì, Danì, Ilonì, Jarèe, Jitce, Jitce, Danì, Pavle, Lídì, Jarce, Vlastì, Simonì, Lence, Blance, Janì, Jitce, Martinì, Danì, Daniele, Janì, Glenì, Janì, Zuzanì, Lucii, Lence, Pavle, Drahomíøe, Danì, Maruce, Janì, Markétì, Ivì, Janì, Janì, Vlaïce, Lence, Lucce, Zuzce, árce, Lence a v neposlední øadì RNDr. Petru indeláøovi, øediteli kolícího støediska fy Erudio, který mi pøed ètyømi lety øekl: Borlandi mají nìjaký nový pøekladaè, nechtìl by ses na to podívat? Lipnice nad Sázavou, léto 1998
OBSAH OBSAH ........................................................................................................ 5 ÚVOD ........................................................................................................... 9 PRVNÍ PROGRAM V DELPHI ............................................................................... 11 KOMPONENTY ................................................................................................ 12 KOMPONENTY 2 .............................................................................................. 14 REAKCE NA UDÁLOST ....................................................................................... 16 SPOLEÈNÁ OBSLUHA UDÁLOSTÍ .......................................................................... 19 KALKULAÈKA .................................................................................................. 21 OETØENÍ CHYB ............................................................................................. 23 KALKULAÈKA S PÁSKOU .................................................................................... 24 TEXTOVÝ EDITOR ............................................................................................ 26 TEXTOVÝ EDITOR 2 ......................................................................................... 28 BEZPEÈNÝ KONEC PROGRAMU ........................................................................... 30 DALÍ DIALOGY ............................................................................................... 32 VÍCE OKEN .................................................................................................... 33 MODÁLNÍ OKNO .............................................................................................. 35 DIALOG ......................................................................................................... 36 VLASTNOST COMPONENTS ................................................................................ 40 DATUM .......................................................................................................... 42 MÌØENÍ ÈASU ................................................................................................ 44 HODINY ......................................................................................................... 45 PØESNOST ÈASOVAÈE ...................................................................................... 46 KLÁVESY ....................................................................................................... 47 ENTER MÍSTO TAB ......................................................................................... 50 PØI ODCHODU
............................................................................................. 52 SETFOCUS .................................................................................................... 53 PØI PØÍCHODU
............................................................................................ 54 PØIDAT KOMPONENTU ...................................................................................... 55 PØIDAT KOMPONENTY I S METODAMI .................................................................... 56 ZMÌNA RODIÈE ............................................................................................... 58
A
DELPHI V PØÍKLADECH TOMÁ HOLAN
5
GRAFIKA ................................................................................................... 59 KRESLENÍ POPRVÉ .......................................................................................... 61 GRAF FUNKCE ................................................................................................ 62 PERO ........................................................................................................... 64 JETÌ PERO ................................................................................................... 65 POPRVÉ BARVA ............................................................................................... 66 LISSAJOUSOVY OBRAZCE .................................................................................. 67 LISSAJOUS 2 .................................................................................................. 68 LISSAJOUS 3 .................................................................................................. 69 TABULKA BAREV .............................................................................................. 70 TABULKA BAREV 2 ........................................................................................... 72 TÌTEC V ÈÁØE .............................................................................................. 74 INVERZNÍ KRESBA ............................................................................................ 75 TIMAGE.STRETCH ........................................................................................... 77 VÝBÌR A KOPÍROVÁNÍ ....................................................................................... 79 SKLÁDAÈKA ................................................................................................... 82 SKLÁDAÈKA 2 ................................................................................................ 85 PATNÁCTKA ................................................................................................... 87 PÍSMO .......................................................................................................... 90 PÍSMO A TÌTEC ............................................................................................. 91 RELIÉF .......................................................................................................... 92 SKLONÌNÉ PÍSMO ............................................................................................ 93 SKLONÌNÉ PÍSMO 2 ......................................................................................... 94 PIXELS .......................................................................................................... 95 BAREVNÉ SLOKY ........................................................................................... 97 PØEVOD NA EDOU ......................................................................................... 99 ÈERNOBÍLÝ OBRÁZEK ..................................................................................... 100 DISTRIBUCE CHYBY ....................................................................................... 101 INVERZE BAREV ............................................................................................ 103 KONTRAST ................................................................................................... 104 RELIÉF ........................................................................................................ 105 TØÍDÌNÍ ...................................................................................................... 106 PRÙMÌRNÉ BARVY ........................................................................................ 108 PRÙMÌRNÝ OBRÁZEK ..................................................................................... 110
6
DELPHI V PØÍKLADECH TOMÁ HOLAN
A
ZVÌTENINA ................................................................................................. 112 DEFORMACE ................................................................................................ 113 LUPA .......................................................................................................... 114 VEKTOROVÉ KRESLENÍ ................................................................................... 115 VLASTNÍ KRESLENÍ ........................................................................................ 117 PØIDÁVÁNÍ DO OBRÁZKU ................................................................................. 119 OBRÁZKY CIZÍCH OKEN ................................................................................... 121 KRESLENÍ NA OKNO ....................................................................................... 122 DÌRAVÉ OKNO .............................................................................................. 123 OBJEKT SCREEN .......................................................................................... 124 ZMÌNA KURZORU MYI ................................................................................... 125 VLASTNÍ KURZOR MYI ................................................................................... 126 OBRÁZEK JAKO RESOURCE ............................................................................. 127 ANIMACE ..................................................................................................... 128 KRESLENÍ FUNKCÍ .......................................................................................... 130 DATABÁZE .............................................................................................. 135 PRVNÍ DATABÁZOVÝ PROGRAM ......................................................................... 137 DALÍ KOMPONENTY ...................................................................................... 139 HODNOTY POLÍ ............................................................................................. 140 HODNOTY POLÍ 2 .......................................................................................... 141 HODNOTY POLÍ 3 .......................................................................................... 142 VYPOÈTENÁ POLE ......................................................................................... 144 VYHLEDÁVANÁ (LOOKUP) POLE ........................................................................ 146 SLOUPCE .................................................................................................... 148 POHYB PO TABULCE ....................................................................................... 149 POHYB PO TABULCE 2 NEPOZOROVANÌ .......................................................... 151 POHYB PO TABULCE 3 ZÁLOKY .................................................................... 152 NALEZENÍ ZÁZNAMU ....................................................................................... 153 ZMÌNA POØADÍ ............................................................................................. 154 VYBRANÉ ZÁZNAMY ....................................................................................... 156 VYBRANÉ ZÁZNAMY 2 .................................................................................... 157 STAVY TABULKY ............................................................................................ 159 DB NAVIGÁTOR ............................................................................................ 161 A
DELPHI V PØÍKLADECH TOMÁ HOLAN
7
PØED AKCÍ
............................................................................................... 162 NEMAZAT .................................................................................................... 163 PO AKCI POÈÁTEÈNÍ HODNOTY ...................................................................... 164 ZÁVISLÉ TABULKY .......................................................................................... 165 DOTAZY ...................................................................................................... 167 SQL: DALÍ DOTAZY ..................................................................................... 169 SQL: VYBRANÉ ATRIBUTY .............................................................................. 170 SQL: VYBRANÉ ZÁZNAMY .............................................................................. 171 SQL: SLOITÌJÍ PODMÍNKA ........................................................................... 172 SQL: PØIBLINÉ POROVNÁNÍ .......................................................................... 173 SQL: USPOØÁDÁNÍ ...................................................................................... 174 SQL: NOVÉ ATRIBUTY ................................................................................... 175 SQL: MÌSÍÈNÍ PLAT ..................................................................................... 176 SQL: POJMENOVANÉ NOVÉ ATRIBUTY ............................................................... 177 SQL: PRÙMÌRNÝ PLAT .................................................................................. 178 SQL: SESKUPENÍ ......................................................................................... 179 SQL: SPOJENÍ TABULEK ................................................................................ 180 SQL: SPOJENÍ VÍCE TABULEK ......................................................................... 181 SQL: NEJPRODÁVANÌJÍ ZBOÍ ....................................................................... 182 SQL: ZMÌNY V TABULKÁCH ............................................................................ 183 VYTVOØENÍ TABULKY ...................................................................................... 185 KNIHOVNA .............................................................................................. 189 ZÁVÌR ..................................................................................................... 201
8
DELPHI V PØÍKLADECH TOMÁ HOLAN
A