C++ BUILDER v pøíkladech ROMAN NERUDA TOMÁ HOLAN Praha 2002
Roman Neruda a Tomá Holan
C++ BUILDER 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 © Roman Neruda, Tomá Holan, Praha 2002 Nakladatelství BEN technická literatura, Vìínova 5, Praha 10 Roman Neruda, Tomá Holan: C++ BUILDER V PØÍKLADECH BEN technická literatura, Praha 2002 1. vydání ISBN 80-7300-042-3
Kdy se budete chtít nauèit tøeba øecky, nejspí si vezmete uèebnici a zaènete gramatikou, slovesy a èasováním. Ale abyste na dovolené v Øecku dokázali øíci Ano (Nai [ne]), Ne (Oci [ochi]), Prosím (Paracalw [parakalo]), Dìkuji (Eucaristw [efcharisto]) nebo se umìli zeptat, kde je tu pota (Pou einai to tacudromeio? [pu ine to tachydromio?]), na to vystaèíte s konverzaèní pøíruèkou. A to je tahle kníka konverzaèní pøíruèka pro turisty v C++ Builderu. Taky si myslíme, e ne se zaènete nìjaký jazyk doopravdy uèit, není patné mít monost se podívat, co jím dokáete øíci a jak je to tìké. A kdy na to pøijde, malé dìti taky nezaèínají gramatikou, ale pøíklady a napodobováním. Tato kníka, po Delphi a Visual Basicu u tøetí ze série
v pøíkladech obsahuje pøíklady vybrané a pouívané bìhem nìkolika let vedení komerèních kurzù programování, výuky programování na vysoké kole i na letních kolách pro støedokolské uèitele informatiky. Pøíklady jsou zvoleny tak, aby ètenáøi poskytly repertoár stavebních prvkù dostateèný pro seznámení s programovacím prostøedím i pro tvorbu vlastních programù. Pøíklady jsou rozdìleny do tøí èástí úplné základy, grafika a databáze. Ètvrtá èást potom obsahuje jeden vìtí pøíklad jednoduchou databázi pro agendu knihovny. Na pøiloeném disku najdete nejen zdrojové texty, ale i pøeloené programy, take nemusíte nic pøekládat, abyste se podívali, co který pøíklad dìlá, staèí jen spustit. Disk navíc obsahuje pozdrav od fy Borland C++ Buider 6, demoverzi pøekladaèe, kterou mùete po registraci bezplatnì pouívat po urèitou dobu. Pøíjemné, ne? Tak to je na úvod ve, ètìte a experimentujte! astnou cestu! Tomá Holan
OBSAH OBSAH ..........................................................................5 ÚVOD .............................................................................9 PRVNÍ PROGRAM V C++ BUILDERU ...................................................... 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 ........................................................................... 27 BEZPEÈNÝ KONEC PROGRAMU ............................................................. 29 DALÍ DIALOGY ................................................................................. 31 VÍCE OKEN ...................................................................................... 32 MODÁLNÍ OKNO ................................................................................ 34 DIALOG ........................................................................................... 35 VLASTNOST COMPONENTS .................................................................. 38 DATUM ............................................................................................ 39 MÌØENÍ ÈASU .................................................................................. 40 HODINY ........................................................................................... 41 PØESNOST ÈASOVAÈE ........................................................................ 42 KLÁVESY ......................................................................................... 43 ENTER MÍSTO TAB ........................................................................... 46 PØI ODCHODU
.............................................................................. 48 SETFOCUS ...................................................................................... 49 PØI PØÍCHODU
.............................................................................. 50 PØIDAT KOMPONENTU ........................................................................ 51 A
C++ BUILDER
V PØÍKLADECH
ROMAN NERUDA, TOMÁ HOLAN
5
PØIDAT KOMPONENTY I S METODAMI ..................................................... 52 ZMÌNA RODIÈE ................................................................................. 54
GRAFIKA .......................................................................55 KRESLENÍ POPRVÉ ............................................................................ 57 GRAF FUNKCE .................................................................................. 58 PERO ............................................................................................. 60 JETÌ PERO ..................................................................................... 61 POPRVÉ BARVA ................................................................................. 62 LISSAJOUSOVY OBRAZCE .................................................................... 63 LISSAJOUS 2 .................................................................................... 64 LISSAJOUS 3 .................................................................................... 65 TABULKA BAREV ................................................................................ 66 TABULKA BAREV 2............................................................................. 68 TÌTEC V ÈÁØE ................................................................................ 70 INVERZNÍ KRESBA .............................................................................. 71 ROZTAENÍ ...................................................................................... 73 VÝBÌR A KOPÍROVÁNÍ ......................................................................... 75 SKLÁDAÈKA ..................................................................................... 77 SKLÁDAÈKA 2 .................................................................................. 80 PATNÁCTKA ..................................................................................... 82 PÍSMO ............................................................................................ 85 PÍSMO A TÌTEC ............................................................................... 86 RELIÉFNÍ PÍSMO ................................................................................ 87 SKLONÌNÉ PÍSMO .............................................................................. 88 SKLONÌNÉ PÍSMO 2 .......................................................................... 89 PIXELS ............................................................................................ 90 BAREVNÉ SLOKY ............................................................................. 91 PØEVOD NA EDOU ........................................................................... 93 ÈERNOBÍLÝ OBRÁZEK ......................................................................... 94 DISTRIBUCE CHYBY ........................................................................... 95 INVERZE BAREV ................................................................................ 97 KONTRAST ....................................................................................... 98 6
C++ BUILDER
V PØÍKLADECH
ROMAN NERUDA, TOMÁ HOLAN
A
RELIÉF ............................................................................................ 99 TØÍDÌNÍ .......................................................................................... 100 PRÙMÌRNÉ BARVY ............................................................................ 102 PRÙMÌRNÝ OBRÁZEK ......................................................................... 104 ZVÌTENINA ..................................................................................... 106 DEFORMACE .................................................................................... 107 LUPA .............................................................................................. 108 VEKTOROVÉ KRESLENÍ ....................................................................... 109 VLASTNÍ KRESLENÍ ............................................................................ 111 PØIDÁVÁNÍ DO OBRÁZKU ..................................................................... 112 OBRÁZKY CIZÍCH OKEN ....................................................................... 114 KRESLENÍ NA OKNO ........................................................................... 115 DÌRAVÉ OKNO .................................................................................. 116 OBJEKT SCREEN .............................................................................. 117 ZMÌNA KURZORU MYI ....................................................................... 118 VLASTNÍ KURZOR MYI ....................................................................... 119 OBRÁZEK JAKO RESOURCE ................................................................. 120 ANIMACE ......................................................................................... 121 KRESLENÍ FUNKCÍ ............................................................................. 123
DATABÁZE ....................................................................127 PRVNÍ DATABÁZOVÝ PROGRAM ............................................................. 129 DALÍ KOMPONENTY .......................................................................... 131 HODNOTY POLÍ ................................................................................. 132 HODNOTY POLÍ 2 .............................................................................. 133 HODNOTY POLÍ 3 .............................................................................. 134 VYPOÈTENÁ POLE ............................................................................. 136 VYHLEDÁVANÁ (LOOKUP) POLE ............................................................ 138 SLOUPCE ........................................................................................ 140 POHYB PO TABULCE .......................................................................... 141 POHYB PO TABULCE 2 NEPOZOROVANÌ .............................................. 142 POHYB PO TABULCE 3 ZÁLOKY ........................................................ 143 NALEZENÍ ZÁZNAMU ........................................................................... 145 A
C++ BUILDER
V PØÍKLADECH
ROMAN NERUDA, TOMÁ HOLAN
7
ZMÌNA POØADÍ ................................................................................. 146 VYBRANÉ ZÁZNAMY ........................................................................... 147 VYBRANÉ ZÁZNAMY 2 ........................................................................ 148 STAVY TABULKY ................................................................................ 150 DB NAVIGÁTOR ................................................................................ 152 PØED AKCÍ
................................................................................... 153 NEMAZAT ........................................................................................ 154 PO AKCI POÈÁTEÈNÍ HODNOTY .......................................................... 155 ZÁVISLÉ TABULKY .............................................................................. 156 DOTAZY .......................................................................................... 158 SQL: DALÍ DOTAZY ......................................................................... 160 SQL: VYBRANÉ ATRIBUTY .................................................................. 161 SQL: VYBRANÉ ZÁZNAMY .................................................................. 162 SQL: SLOITÌJÍ PODMÍNKA .............................................................. 163 SQL: PØIBLINÉ POROVNÁNÍ .............................................................. 164 SQL: USPOØÁDÁNÍ .......................................................................... 165 SQL: NOVÉ ATRIBUTY ....................................................................... 166 SQL: MÌSÍÈNÍ PLAT ......................................................................... 167 SQL: POJMENOVANÉ NOVÉ ATRIBUTY ................................................... 168 SQL: PRÙMÌRNÝ PLAT ...................................................................... 169 SQL: SESKUPENÍ ............................................................................. 170 SQL: SPOJENÍ TABULEK .................................................................... 171 SPOJENÍ VÍCE TABULEK ...................................................................... 172 NEJPRODÁVANÌJÍ ZBOÍ .................................................................... 173 ZMÌNY V TABULKÁCH ......................................................................... 174 VYTVOØENÍ TABULKY .......................................................................... 175
KNIHOVNA ....................................................................177 KNIHOVNA ....................................................................................... 179
ZÁVÌR ...........................................................................191
8
C++ BUILDER
V PØÍKLADECH
ROMAN NERUDA, TOMÁ HOLAN
A