Obsah // ČÁST A // VIZUÁLNÍ PROGRAMOVÁNÍ, OBJECT PASCAL 1 // Úvod 1 // Pro koho je tato kniha 1 // Obsah jednotlivých částí knihy 2 // Typografické konvence 2 // Použité ikony 2 // Kapitola 1 // Co je Delphi 5 // 1.2 Proč Delphi 6 // 1.3 Verze Delphi 6 // 1.4 Co je tedy vlastně Delphi 7 // 1.5 Vizuální programování 8 // 1.6 Kam psát programový kód - událostmi řízené programování 9 // Kapitola 2 // Uživatelské prostředí Delphi 11 // 2.1 Jak vypadá prostředí Delphi 11 // 2.2 Jak ovládat Delphi 12 // 2.2.1 Hlavní menu 12 // 2.2.2 Panely nástrojů 12 // 3.2.3 Klávesové zkratky 13 // 2.3 Form Designer 14 // 2.4 Object Inspector 15 // 2.5 Paleta komponent 15 // 2.6 Code Editor, Code Explorer 16 // 2.7 Code Insight 17 // 2.8 Další prvky prostředí 18 // 2.9 Překlad projektu 19 // 2.10 Nápověda 19 viii // Obsah // Kapitola 3 // První program v Delphi 21 // 3.1 Pozdravme svět 21 // 3.2 Volba komponent 21 // 3.3 Nastavení vlastností komponent 23 // 3.4 Nastavení reakcí na události 24 // 3.5 Vlastní programování 24 // 3.6 Uložit, přeložit, spustit 25 // 3.7 Gratuluji! 26 // 3.8 Poznámky к první aplikaci 26 // Kapitola 4 // Programování v Object Pascalu - základní koncepty 29 // 4.1 К čemu znát Object Pascal? 29 // 4.2 Co se dozvíte v této kapitole 29 // 4.3 Vysvětlení pojmů - Pascal, Turbo Pascal, Object Pascal 30 // 4.4 Struktura programu v Pascalu 30 // 4.5 Sekce uses 31 // 4.6 Klíčová slova, direktivy 31
4.7 Zápis čísel, řetězců, komentářů 31 // 4.8 Deklarační část 31 // 4.8.1 Identifikátory 32 // 4.8.2 Deklarace návěští - label 32 // 4.8.3 Deklarace konstant - const 32 // 4.8.4 Deklarace datových typů - type 33 // 4.8.5 Deklarace proměnných - var 34 // 4.9 Datové typy v Object Pascalu 34 // 4.9.1 Jednoduché datové typy 34 // 4.9.2 Strukturované datové typy 37 // 4.9.3 Řetězce 38 // 4.9.4 Ukazatele 38 // 4.9.5 Procedurální a variantní typy 40 // 4.9.6 Typová kompatibilita 40 // 4.9 7 Konverze typů 41 // 4.10 Podprogramy 43 // 4.10.1 Procedury a funkce 43 // 4.10.2 Předávání parametrů 43 // 4.11 Rozsah platnosti 44 // 4.12 Výkonná část programu 45 // 4.12.1 Operátory 45 // 4.12.2 Příkazy 46 Obsah // ix // 4.13 Programové jednotky (Units) 48 // 4.13.1 Sekce interface 48 // 4.13.2 Sekce implementation 48 // 4.13.3 Sekce initialization 48 // 4.13.4 Sekce finalization 49 // 4.14 Komplexní příklad 49 // Kapitola 5 // Programování v Object Pascalu - objektové koncepty 53 // 5.1 Potřebuji znát objektové koncepty? 53 // 5.2 Objektově orientovaná architektura 53 // 5.3 Třída, objekt 54 // 5.4 Příklad - deklarace třídy, práce s objekty 54 // 5.5 Vytváření instancí 56 // 5.5.1 Konstruktor 56 // 5.5.2 Destruktor 57 // 5.6 Typy přístupu к datům 58 // 5.7 Dědičnost 59 // 5.8 Polymorfismus, virtuální a abstraktní metody 60 // 5.9 Objekty v Delphi 60 // 5.10 Knihovna vizuálních komponent 61 // 5.10.1 Třída TObject
61 // 5.10.2 Třída TComponent 62 // 5.10.3 Třída TApplication 62 // 5.10.4 Komponenty nebo objekty? 63 // 5.11 Přidání komponenty za běhu programu 64 // ČÁST В // ZAČÍNÁME VYTVÁŘET APLIKACE 65 // Co se dozvíte v této části 65 // Kapitola 6 // Komponenty 67 // 6.1 Co jsou komponenty 67 // 6.2 Palety komponent 68 // 6.2.1 Paleta Standard 69 // 6.2.2 Další palety 70 // 6.3 Viditelné a neviditelné komponenty v době návrhu 71 // 6.4 Aktivní komponenta - zaměření, focus 71 x // Obsah // Kapitola 7 // Nejdůležitější (společné) vlastnosti komponent 73 // 7.1 Co jsou vlastnosti 73 // 7.2 Společné vlastnosti 74 // 7.2.1 Jméno a titulek komponenty 74 // 7.2.2 Velikost a poloha komponenty 75 // 7.2.3 Dostupnost komponenty 76 // 7.2.4 Vlastnost Tag 76 // 7.2.5 Barva a typ písma komponenty 76 // 7.2.6 Plovoucí nápověda 77 // 7.2.7 Tabulátor 78 // 7.3 Jak pracovat s vlastnostmi a metodami za běhu aplikace 78 // Kapitola 8 // Nejdůležitější události 79 // 8.1 Co jsou události 79 // 8.2 Nejčastější události 80 // 8.3 Jak pracovat s událostmi 82 // 8.4 Ošetření událostí - příklad 83 // 8.5 Parametr Sender v obsluze událostí 86 // Kapitola 9 // Formuláře a okna 87 // 9.1 Co je formulář a co je okno 87 // 9.2 Vlastnosti formuláře 89 // 9.2.1 Styl okraje formuláře 89 // 9.2.2 Systémová tlačítka 90 // 9.3 Události formuláře 91 // 9.4 Metody formuláře 92 // Kapitola 10 // Mechanismus výjimek a běhové (run-time)
chyby 93 // 10.1 Běhové (run-time) chyby 93 // 10.1.1 Procedura, která vůbec neošetřuje chyby 94 // 10.1.2 Tradiční způsob ošetření chyb 95 // 10.1.3 Ošetření chyby s užitím výjimek 95 // 10.2 Mechanismus výjimek 96 // 10.2.1 Sekce finally 97 // 10.2.2 Kombinace sekcí finally a except 98 // 10.2.3 Syntaxe bloku except 99 // 10.2.4 Opětovné vyvolání výjimky 99 // 10.2.5 Výjimky pro pokročilé 100 // 10.2.6 Některé výjimky 101 Obsah // xi // Kapitola 11 // Hledáme chyby ve zdrojovém kódu 103 // 11.1 Integrovaný debugger 103 // 11.2 Ladíme a odvšivujeme 104 // 11.2.1 Zastavení běhu programu 104 // 11.2.2 Krokování Trace Into 105 // 11.2.3 Krokování Step Over 105 // 11.2.4 Zastavení na řádce s kurzorem - Run to Cursor 105 // 11.2.5 Zastavení na definovaném místě - Breakpoints 105 // 11.2.6 Sledování obsahu proměnných - Watch 106 // 11.2.7 Změny obsahu proměnných - Evaluate/Modify 107 // 11.1. Co když zamrznete? 107 // Kapitola 12 // Správa projektu v Delphi // 12.1 Struktura programu v Delphi 109 // 12.2 Přidání modulu do projektu 111 // 12.3 Soubory projektu 111 // 12.4 Správa většího projektu 112 // 12.4.1 Pojmenování komponent 112 // 12.4.2 Více formulářů 112 // 12.4.3 Štábní kultura kódu 113 // ČÁST C // KOMPONENTY PRO KOMUNIKACI S UŽIVATELEM 115 // Co se dozvíte v této části 115 // Kapitola 13 // Standardní boxy aneb „Ano, Ne, Storno" 117 // 13.1 Standardní boxy 117 // 13.2 ShowMessage - zobrazení
zprávy 118 // 13.3 MessageDIg - větší možnosti 119 // 13.4 MessageDIgPos - zvolte si pozici na obrazovce 120 // 13.5 MessageBox - nejkomplexnější řešení 120 // Kapitola 14 // Základní komponenty 123 // 14.1 Tvorba uživatelského rozhraní 123 // 14.2 Nápis - komponenta Label 123 // 14.3 Tlačítko - komponenta Button 124 // 14.4 Kontejnerové komponenty - GroupBox, Panel 125 xii // Obsah // Kapitola 15 // Logické hodnoty 127 // 15.1 Získávání a výpis logických hodnot 127 // 15.2 CheckBox - zatrhávací pole 127 // 15.3 RadioButton, RadioGroup - přepínací tlačítka 128 // Kapitola 16 // Jednořádkové údaje 131 // 16.1 Jméno, heslo, e-mail 131 // 16.2 InputBox - varianta standardního boxu 131 // 16.3 Edit - více možností 132 // 16.4 MaskEdit - možnost omezit formát vstupu 134 // Kapitola 17 // Víceřádkové údaje 137 // 17.1 Práce s delším textem 137 // 17.2 Memo - poznámka 137 // 17.3 RichEdit - základ textového editoru 139 // 17.3.1 Vlastnosti textu (TTextAttríbutes) 139 // 17.3.2 Vlastnosti RichEditu 141 // 17.3 3 Odstavec (Paragraph) 142 // Kapitola 18 // Číselné údaje 145 // 18.1 Práce s číselnými údaji 145 // 18.2 ScrollBar - posuvná lišta 145 // 18.3 SpinEdit - kombinace editačního pole a myši 147 // Kapitola 19 // Příklad - MessageBox, CheckBox, ScrollBar a Memo 149 // 19.1 Prohlížeč barev 149 // 19.2 Přiřazení metod obsluhám události 150 // 19.3 Zdrojový kód aplikace 151 // 19.4 Poznámky ke zdrojovému
kódu 154 // Kapitola 20 // Seznamy 155 // 20.1 К čemu se používají seznamy 155 // 20.2 ListBox - sezname, otevři se 155 // 20.3 ComboBox - sezname, rozbal se 158 Obsah // Kapitola 21 // Tvorba uživatelských nabídek - menu 161 // 21.1 Bez nabídek to nepůjde 161 // 21.2 Druhy položek menu 161 // 21.3 Zásady tvorby hlavního menu 162 // 21.31 Položky, které přímo spouštějí některou akci 162 // 21.3.2 Rozvinutí ve dvou úrovních 162 // 21.3.3 Hlubší zanořování položek 162 // 21.3.4 Změna položek menu za běhu programu 163 // 21.3.5 Skrývání položek menu za běhu programu 163 // 21.3.6 Členění položek do sekcí 163 // 21.3.7 Dodržování zvyklostí uživatele 163 // 21.3.8 Používání klávesových zkratek 163 // 21.3 9 Jazyk položek menu 163 // 21.4 Tvorba hlavního menu v Delphi 164 // 21.4.1 Vlastnosti položek menu 165 // 21.4.2 Existence dvou různých hlavních menu 166 // 21.4.3 Přidání položky do hlavního menu za běhu programu 167 // 21.5 Lokální (pop-up) menu 167 // Kapitola 22 // Některé další komponenty 169 // 22.1 Všehochuť komponent 169 // 22.2 StringGrid - mřížka 169 // 22.3 Timer - časovač 171 // 22.31 Časovač pro pokročilé 171 // 22.4 Gauge, ProgressBar - zobrazení průběhu procesu 172 // 22.5 ImageList - seznam obrázků 173 // 22.6 StatusBar - stavový řádek 174 // 22.6.1 Příklad vytvoření stavového řádku 174 // ČÁST D // VYLEPŠUJEME NÁVRH APLIKACE 177 // Co se dozvíte v této části
177 // Kapitola 23 // Práce se soubory v Delphi 179 // 23.1 Soubory jako základní forma ukládání dat 179 // 23.2 Možnosti práce se soubory v Delphi 180 // 23.3 Souborová podpora „po stáru" 180 // 23.4 Souborová podpora „po novu" 181 xiv Obsah // 23.5 Chyby při práci se soubory 182 // 23.6 Další metody a funkce pro práci se soubory 184 // 23.7 Komponenty pro práci se soubory 184 // Kapitola 24 // Standardní dialogy 185 // 24.1 Úvodem ke standardním dialogům 185 // 24.2 OpenDialog, SaveDialog 186 // 24.3 OpenPictureDialog, SavePictureDialog 188 // 24.4 FontDialog 188 // 24.5 ColorDialog 190 // 24.6 PrinterSetupDialog, PrintDialog 191 // 24.7 FindDialog, ReplaceDialog 192 // 24.7.1 Vyhledávání v textu 193 // Kapitola 25 // Vylepšujeme vzhled aplikace 195 // 25.1 Pouťové efekty 195 // 25.2 Oddělovací čáry - komponenta Bevel 196 // 25.3 Animace - komponenta Animate 196 // 25.4 Tlačítko s obrázkem - komponenta BitBtn 197 // 25.5 Panel nástrojů poprvé - komponenty SpeedButton 198 // 25.6 Panel nástrojů podruhé - komponenta ToolBar 199 // 25.7 Záložky - komponenty TabControl a PageControl 200 // 25.7.1 TabControl 200 // 25.7.2 PageControl 201 // Kapitola 26 // Vytvoření textového editoru 203 // 26.1 Vytváříme textový editor 203 // 26.1.1 Vytvoření projektu, volba komponent 203 // 26.1.2 Vytvoření hlavní nabídky programu 203 // 26.1.3 Úvodní nastavení 204 // 26.1.4 Ošetřování jednotlivých položek menu 205 // 26.1.5 Textový
editor je hotov 211 // 26.1.6 Zdrojové texty celé aplikace 212 // 26.2 Vytvoření posuvného textu 219 Obsah // XV // ČÁST E // POKROČILÁ TÉMATA 223 // Co se dozvíte v této části 223 // Kapitola 27 // Práce s grafikou v Delphi 225 // 27.1 Práce s myší - události OnMouseDown, OnMouseUp, OnMouseMove 225 // 27.1.1 Parametr Button 226 // 27.1.2 Parametr Shift 226 // 27.1.3 Parametry X, Y 226 // 27.2 Kreslení v Delphi - základní informace 226 // 27.3 Třída TCanvas - plátno 227 // 27.3.1 Vlastnost Handle 227 // 27.3.2 Vlastnost Brush 228 // 27.3.3 Vlastnost Font 230 // 27.3.4 Vlastnost Pen 230 // 27.3.5 Vlastnost PenPos 232 // 27.3.6 Vlastnost Pixels 233 // 27.4 Metody třídy TCanvas 233 // 27.5 Poznámka ke kreslení v Delphi 234 // 27.5.1 Překreslování okna - ručně 235 // 27.5.2 Překreslování okna - použitím komponenty Image 235 // 27.6 Závěrečný příklad 237 // Kapitola 28 // Multimédia v Delphi 241 // 28.1 Co rozumíme multimédii 241 // 28.2 Přehrávač záznamů - MediaPlayer 241 // 28.2.1 Vlastnosti komponenty MediaPlayer 242 // 28.2.2 Metody komponenty MediaPlayer 244 // 28.2.3 Události komponenty MediaPlayer 247 // 28.3 Velmi jednoduchý přehrávač 248 // Kapitola 29 // Základy práce s databázemi // 29.1 Databáze a Delphi 251 // 29.2 Databáze - obecný úvod 252 // 29.2.1 Systém řízení báze dat 252 // 29.2.2 Databázové jazyky 253 // 29.2.3 DDL - Data Definition Language 253 // 29.2.4 DML - Data Manipulation Language
253 // 29.2.5 Dotazy a dotazovací jazyky 254 // 29.2.6 Jazyk SQL 254 // 29.3 Struktura databáze 254 // 29.4 Typy dat v databázi 255 Obsah // 29.5 Lokální a vzdálené databáze 255 // 29.6 Databáze v Delphi - Borland Database Engine (BDE) 255 // 29.7 Klientský program Database Desktop 256 // 29.8 Komponenty Data Access 257 // 29.8.1 Komponenta DataSource 258 // 29 8.2 Komponenta Table 258 // 29.8.3 Komponenta Query 259 // 29.9 Komponenty Data Controls 260 // 29.9.1 Zobrazení ve formě tabulky - DBGrid 260 // 29.9.2 Navigace po tabulce - DBNavigator 262 // 29.9.3 Zobrazení logické informace z databáze - DBCheckBox 262 // 29.10 Příklad vytvoření databázové aplikace 263 // 29.IO.I Vytvoření nového aliasu pomocí nástroje BDE Administrator 263 // 29 IO.2 Vytvoření databáze pomocí nástroje Database Desktop 264 // 29.10.3 Vytvoření návrhu aplikace v Delphi 266 // 29.10.4 Poznámky к příkladu 268 // Kapitola 30 // Uživatelské prostředí aplikace 269 // 30.1 Zásady návrhu uživatelského prostředí 269 // 30.1.1 Princip prvořadosti uživatele 270 // 30.1.2 Princip jednotnosti 270 // 30.1.3 Princip vlídnosti 270 // 30.2 Softwarové inženýrství 270 // Kapitola 31 // Tvorba nápovědy 273 // 31.1 Nápověda 273 // 31.2 Vytváření nápovědy „ručně" a pomocí nástrojů 273 // 31.3 Kroky při vytváření nápovědy 274 // 31.3.1 Analýza zákazníka 274 // 31.3.2 Logické rozdělení nápovědy, určení témat 274 // 31.3.3 Vytvoření
vlastních textů nápovědy - *.RTF 275 // 31.3.4 Vytvoření souboru projektu 275 // 31.3.5 Kompilace nápovědy 276 // 31.3.6 Včlenění nápovědy do aplikace v Delphi 276 // 31.4 Na závěr 276 // Kapitola 32 // Uživatelská dokumentace 277 // 32.1 Zásady tvorby uživatelské dokumentace 277 // Na závěr 279 // Rejstřík 281