Umíme to s Delphi, 50. díl – hypertextová historie seriálu

Dnešní jubilejní díl bude trochu netradiční: poprvé (a nadlouho naposledy) se totiž nebude příliš věnovat programování. Než se nad tou zdánlivou opovážlivostí znechuceně pohoršíte, dovolte mi podotknout, že i tak reaguje na vaše přání. Vstupte a spatříte kromě jiného obsah dosavadních dílů seriálu i s hypertextovými odkazy.
Stručný pohled do minulosti našeho seriálu

První díl seriálu se na Živě objevil přesně 19.3.2001 (je to tedy prakticky přesně jeden rok). Dnes vás vítám u padesátého dílu. Protože padesátka se neslaví každý den, dovolte mi, abych stručně shrnul, co všechno bylo v seriálu až do dneška k vidění. Reaguji tím také na vaše četné e-maily, ve kterých vyjadřujete přání mít seriál k dispozici kompletní, všechny díly pěkně pohromadě. Toto přání vám, pravda, splnit nemohu, nicméně pokusím se alespoň trochu vykročit správným směrem:)

Je samozřejmé, že v padesátidílném seriálu se již poměrně těžko vyhledává. Pokud čas od času využijete tento seriálu jako jakousi referenci, asi jste již nejednou vypustili několik ostřejších výrazů v marné snaze najít hledané. Pokud totiž například potřebujete najít popis tisku v Delphi a nevíte, ve kterých dílech se přesně objevil, můžete strávit realitně dlouhou dobu neefektivním procházením vybraných dílů.

V přehledu uvedeném níže proto najdete obsah všech dosud publikovaných dílů seriálu. Přehled je hypertextový, to znamená, že pokud budete hledat zmíněný tisk, snadno do přehledu nahlédnete a jedním klepnutím se přenesete na odpovídající stránku. Věřím, že toto vylepšení uvítáte a že pro vás tento padesátý díl bude zároveň jakýmsi portálem našeho seriálu.

Nejprve trochu statistiky, pak poděkování

Ještě předtím ale připomenu několik zajímavých statistických údajů. Padesát zveřejněných dílů obsahuje celkem skoro 800 kB čistého textu, průměrný díl je tedy dlouhý zhruba 16 kB textu. Pokud bychom vycházeli z toho, že průměrná (mnou psaná:)) stránka A4 bez obrázků, která je psaná v MS Wordu písmem Times New Roman o velikosti 12 bodů, obsahuje zhruba 2 kB čistého textu (jde o přibližný, empiricky ověřený údaj), snadno spočítáme, že jste si dosud mohli přečíst přibližně 400 stránek čistého A4 textu. V jednotlivých dílech se ovšem celkem objevilo skoro 190 obrázků. Řekněme, že na jednu stránku A4 se vejdou 3-4 průměrné obrázky. Pak je zřejmé, že náš seriál dosud zabral přibližně 450 průměrných stránek A4. V průběhu seriálu jsme společně vytvořili skoro 40 ukázkových aplikací, přičemž vytvoření každé z nich jsme si popsali krok za krokem. Myslím, že tyto údaje z našeho seriálu činí jeden z ojedinělých projektů na českém internetu.

A za to bych vám, milí čtenáři, velmi rád upřímně poděkoval. Bez vašeho zájmu a bez vaší podpory by nepochybně tento projekt skončil tak jako řada jiných – v tichosti, po několika prvních dílech. Budu rád, pokud budete svůj zájem projevovat i nadále; budu se i nadále těšit na vaše náměty a připomínky. V závěru tohoto dílu najdete stručný výhled do budoucnosti, tedy přehled témat, která se v seriálu v nejbližší době objeví. I k tomuto přehledu vítám veškeré vaše komentáře.

Hypertextový obsah jednotlivých dílů

Nyní již se pojďme podívat na to, co dosud obsahovaly jednotlivé díly seriálu. Klepnutím na nadpis dílu si můžete snadno příslušný díl otevřít.

Díl 1: -

  • Úvodní informace
  • Popis nástroje Delphi
  • Srovnání dostupných verzí a edicí Delphi

Díl 2: Ahoj, světe!

  • První aplikace
  • Základní pojmy (komponenta, vlastnost, událost)
  • Překlad a spuštění projektu

Díl 3: Přehled podstatných komponent

  • Palety komponent
  • Důležité komponenty z palety Standard i z ostatních palet
  • Vytvoření stavového řádku.

Díl 4: Vlastnosti komponent

  • Co jsou vlastnosti
  • Návrhové a run-time vlastnosti
  • Popis nejdůležitějších vlastností společných většině komponent

Díl 5: Události, překlad, hledání chyb

  • Co jsou události
  • Popis nejdůležitějších událostí s důrazem na události formuláře
  • Jak pracovat s událostmi
  • Možnosti integrovaného debuggeru Delphi
  • Hledání chyb v kódu.

Díl 6: Struktura programu, VCL, standardní boxy

  • Struktura programu a projektu v Delphi
  • Správa většího projektu
  • Hierarchie tříd, knihovna VCL
  • Standardní boxy (ShowMessage, MessageDlg, MessageDlgPos)

Díl 7: Zadávání informací, uživatelský vstup

  • Funkce a komponenty pro komunikaci s uživatelem: CheckBox, RadioButton, RadioGroup, InputBox, Edit, MaskEdit, Memo, ScrollBar, SpinEdit

Díl 8: Zadávání informací, vstupy, časovač

  • Další komponenty pro komunikaci s uživatelem: ListBox, ComboBox, StringGrid, Timer, Gauge, ProgressBar

Díl 9: Uživatelská menu

  • Popis vytváření hlavních nabídek
  • Zásady tvorby menu
  • Komponenty MainMenu a PopupMenu
  • Nástroj MenuDesigner pro vytváření nabídek

Díl 10: Objektové koncepty

  • Popis základních rysů, konceptů a pojmů objektově orientované architektury: třída, objekt, konstruktor, destruktor, zapouzdření, polymorfismus, dědičnost, autorizovaný přístup k datům

Díl 11: Běhové chyby a mechanismus výjimek

  • Popis mechanismu výjimek v Delphi
  • Ošetřování chyb bez použití výjimek a s ním

Díl 11_2: Práce se soubory

  • Souborová podpora v Object Pascalu
  • Rozšířená souborová podpora Delphi
  • Chyby (a chybové kódy) při práci se soubory

Díl 12: Standardní dialogy

  • Několik komponent pro práci se soubory
  • Filozofie standardních dialogů, jejich přehled a popis: OpenDialog, SaveDialog, OpenPictureDialog, SavePictureDialog, FontDialog, ColorDialog, PrintDialog, PrinterSetupDialog, FindDialog, ReplaceDialog

Díl 13: Textový editor

  • Komponenta RichEdit
  • Vlastnosti textu (třída TTextAttributes)
  • Vlastnosti odstavce (třída TParagraph)
  • Implementace vyhledávání v textu
  • Vytvoření jednoduchého textového editoru

Díl 14: Podrobněji o formulářích a oknech

  • Rozdíl mezi formulářem a oknem
  • Okna z hlediska uživatele a operačních systému
  • Typy oken
  • MDI, SDI architektura
  • Vytvoření MDI aplikace
  • Automatické a ruční vytváření formulářů (oken)
  • Vytvoření konzolové aplikace

Díl 15: Pouťáky

  • Důvody pro používání pouťových efektů
  • Popis komponent pro vylepšení vzhledu aplikace: Bevel, BitBtn, SpeedButton, ImageList, ToolBar, PageControl

Díl 16: Grafika v Delphi

  • Práce s myší (podrobný popis příslušných událostí)
  • Popis filozofie kreslení v Delphi
  • Plátno (Canvas, třída TCanvas)
  • Vlastnosti plátna, štětec, pero
  • Metody pro vykreslování geometrických obrazců
  • Problém s kreslením ve Windows – překreslování, jeho řešení ručně a použitím komponenty Image.
  • Vytvoření jednoduchého grafického prográmku

Díl 17: Databáze v Delphi

  • Vytváření databází a databázové nástroje Delphi: databázové rozhraní Borland Databáze Engine, klientský program Databáze Desktop
  • Komponenty Data Access, DataSource
  • Podrobně komponenta Table, Query

Díl 18: Databáze v Delphi, pokračování

  • Komponenty DataControls
  • Podrobně komponenta DBGrid, DBNavigator, DBCheckBox
  • Kompletní příklad vytvoření databázové aplikace (včetně vytvoření databáze)

Díl 19: Multimédia v Delphi

  • Práce s multimédii – podrobný popis komponenty MediaPlayer
  • Vytvoření velmi jednoduchých přehrávačů CD a hudebních či video souborů

Díl 20: Tisk v Delphi

  • Popis filozofie tisku v Delphi a ve Windows
  • Tisk formuláře
  • Složitější tiskové operace, třída TPrinter

Díl 21: Tisk v Delphi, pokračování

  • Tisk textu
  • Problém rozdílné velikosti objektů na monitoru a na tiskárně, jeho řešení

Díl 22: Tvorba výstupních sestav

  • Co jsou výstupní sestavy z databází
  • Základní komponenta pro tvorbu výstupních sestav: QuickRep, její podrobný popis
  • Další důležité komponenty: QRBand, QRLabel, QRDBText, QRExpr

Díl 23: Tvorba výstupních sestav prakticky

  • Tři možnosti při vytváření sestavy: použití průvodce, použití šablony, kompletní ruční vytvoření
  • Vytvoření sestavy pomocí průvodce
  • Vytvoření sestavy za použití šablony
  • Ruční vytvoření sestavy
  • Modifikace tisknutých dat
  • Shrnutí obecného postupu při vytváření výstupních sestav

Díl 24: Práce se soubory podrobněji, 1. část

  • Soubory v Object Pascalu – teoretický úvod
  • Základní operace prováděné s každým typem souboru
  • Ošetřování chyb při práci se soubory a používání příslušných direktiv překladače
  • Procedury a funkce použitelné pro soubory všech typů

Díl 25: Práce se soubory podrobněji, 2. část

  • Implementace vyhledávání souborů (procedury FindFirst a FindNext)
  • Práce s typovanými soubory (se soubory s udaným typem)
  • Práce s netypovanými soubory (blokový přístup)
  • Práce s textovými soubory

Díl 26: Programovat DLL knihovny může úplně každý – úvod

  • Připomenutí architektury aplikace (obsah souboru *.EXE)
  • Teoretický popis knihoven DLL
  • Výhody a nevýhody dynamicky linkovaných knihoven
  • Pro pokročilé: popis sdílení kódu v šestnáctibitových a ve dvaatřicetibitových Windows
  • Vytvoření jednoduché DLL knihovny: úvod

Díl 27: Programovat DLL knihovny může úplně každý, dokončení

  • Vytvoření jednoduché DLL knihovny: pokračování
  • Vytvoření programu využívajícího funkce z DLL knihovny
  • Vytvoření nové verze této aplikace bez modifikace jejího zdrojového kódu
  • Lepší znovupoužitelnost knihoven DLL: modifikátor stdcall
  • Načítání knihoven do paměti: implicitní a explicitní linkování, funkce LoadLibrary, LoadLibraryEx, FreeLibrary
  • Kompatibilita DLL knihoven
  • Smart-linking aneb dynamické linkování statických modulů

Díl 28: Využití schránky Windows, začínáme

  • Využívání systémové schránky (clipboard) v okenních aplikacích
  • Prohlížení obsahu schránky ve Win9x a Win2000
  • Formáty (typy) dat ve schránce
  • Základní metody Delphi pro práci se schránkou (CopyToClipboard, PasteFromClipboard, CutoClipboard)
  • Obtížnější operace se schránkou: třída TClipboard

Díl 29: Využití schránky Windows, dokončení

  • Vlastnosti a metody třídy TClipboard, metoda HasFormat a ukázková aplikace zjišťující aktuální formáty dat ve schránce
  • Práce s obrázky a schránkou, ukázková aplikace

Díl 30: Aby se uživatel neopařil

  • Používání klávesových zkratek
  • Klávesové zkratky bez speciálních komponent – vlastnost ShortCut
  • Komponenta HotKey
  • Ukázková aplikace používající komponentu HotKey

Díl 31: Chcete efektivně prohlížet seznamy?

  • Komponenta ListView, její vlastnosti a možnosti nastavení, její metody a události
  • Ukázkové aplikace demonstrující různé možností této komponenty

Díl 32: Uživatel často zapomíná…

  • Vytvoření kalendáře: komponenta Calendar, její vlastnosti a metody

Díl 33: Rutiny pro obsluhu systémového datumu a času

  • Práce se systémovým časem v Delphi, základní datové typy
  • Konverzní funkce pro převod údajů mezi jednotlivými datovými typy
  • Metody pro získání a zpracování systémového datumu a času
  • Proměnné z jednotky SysUtils, které souvisejí s datumem a časem
  • Formátovací specifikátory pro metodu FormatDateTime
  • Ukázková aplikace využívající komponentu Calendar

Díl 34: BPL: packages (balíky), 1. část

  • Filozofie dynamicky linkovaných balíků, jejich podobnost s dynamicky linkovanými knihovnami
  • Kdy používat dynamicky linkované balíky
  • Běhové balíky: popis, praktické používání
  • Přehled modulů ve standardních běhových balících Delphi
  • Návrhové balíky: popis, praktické používání

Díl 35: BPL: packages (balíky), dokončení

  • Soubory vytvořené při programování balíků
  • Vytváření vlastních, uživatelských balíků: praktický popis
  • Zdrojový kód jednoduchého modulu určeného pro experimentování s balíky

Díl 36: Datum a čas je nade vše: měsíční kalendář

  • Atraktivní komponenta pro vytvoření kalendáře: MonthCalendar, její vlastnosti, události
  • Komponenta DateTimePicker - úvod

Díl 37: Datum a čas je nade vše: výběr data a času

  • Vlastnosti, události, metody komponenty DateTimePicker
  • Ukázková aplikace používající komponenty MonthCalendar a DateTimePicker

Díl 38: Technologie OLE jasně a srozumitelně, 1. část

  • Podrobný teoretický popis technologie OLE (Object Linking and Embedding, vkládání a propojování objektů)
  • Další, navazující technologie: COM, ActiveX, OLE Automation, Active Server Pages, Active Documents…
  • Další, podrobnější informace o technologii OLE
  • Rozdíl mezi propojováním a vkládáním

Díl 39: Technologie OLE jasně a srozumitelně, 2. část

  • Mechanismus Ole v Delphi: komponenta OLEContainer, její podrobný popis
  • Jenoduchá ukázková aplikace využívající technologii OLE
  • Vlastnosti a metody komponenty OLEContainer
  • Různé možnosti pro práci s OLE

Díl 40: Technologie OLE jasně a srozumitelně, dokončení

  • Události komponenty OLEContainer
  • Jednoduchá ukázková aplikace: načítání a ukládání objektů
  • Spojování nabídek, vznikající problémy a jejich řešení
  • Panely nástrojů a technologie OLE
  • Rozsáhlejší ukázková aplikace demonstrující technologii OLE

Díl 41: Pracujeme s celou aplikací

  • Podrobnější popis hierarchie tříd knihovny VCL
  • Třída TObject zapoudřující základní chování objektů VCL
  • Třída TComponent jako základní třída při vytváření nevizuálních komponent
  • Třída TApplication zapouzdřující projekt jako aplikaci systému Windows, objekt Application
  • Podrobný popis třídy TApplication, její vlastnosti a události

Díl 42: Třída TApplication, dokončení

  • Metody třídy TApplication
  • Metoda Application.ProcessMessages – zpracování zpráv při déletrvajícím výpočtu
  • Metoda Application.MessageBox – zobrazování výpisových boxů
  • Komponenty vs. Objekty

Díl 43: Další možnosti komunikace s uživatelem

  • Funkce InputBox pro získání jednořádkového údaje – varianta standardního boxu
  • Funkce InputQuery – další standardní box pro získání jednořádkového vstupu s možností zjistit způsob opuštění tohoto boxu
  • Funkce CreateMessageDialog – potřebujete-li opakovaně zobrazovat tentýž box
  • Komponenta MaskEdit – podrobný popis komponenty pro omezení formátu vstupu
  • Komponenta UpDown – šipky nahoru a dolů
  • Komponenta CheckListBox – seznam s možností zaškrtávat jednotlivé položky

Díl 44: Vytvořte si vlastní komponentu, 1. část

  • Vytváření uživatelských komponent – teoretický základ
  • Popis komponent z hlediska jejich programátora
  • Rámcový postup při vytváření nové komponenty
  • Praktická ukázka vytvoření komponenty „seznam tiskáren“: postup krok za krokem
  • Inicializace vlastností komponenty, vznikající problémy a jejich řešení

Díl 45: Vytvořte si vlastní komponentu, 2. část

  • Podrobný popis všech kroků realizovaných při tvorbě komponenty
  • Úvodní analýza a výběr vhodného předka pro komponentu, přehled vhodných bázových tříd, šablony komponent
  • Vytvoření komponenty: tvorba vlastností, vlastnosti přístupné v době návrhu, klíčové slovo property, vytváření vlastností jednoduchých typů, vytváření vlastností výčtových typů, vytváření vlastností typu množina

Díl 46: Vytvořte si vlastní komponentu, 3. část

  • Vytváření vlastností typu objekt, vytváření vlastností typu pole
  • Součásti deklarace vlastností: direktiva Default, direktiva NoDefault, direktiva Stored, direktivy Index a Dispid
  • Čtení a zápis hodnot vlastností (přístupové metody read a write)
  • Inicializace hodnot vlastností: předefinování konstruktoru Create, předefinování metody Loaded, předefinování metody CreateWnd

Díl 47: Vytvořte si vlastní komponentu, dokončení

  • Definice metod, zásady při vytváření metod, virtuální a abstraktní metody
  • Definice událostí, filozofie událostí (zprávy systému Windows), metody předání události, implementace událostí jako vlastností
  • Používání událostí rodičovské třídy, předefinování standardních událostí, vytváření uživatelských událostí
  • Testování vytvořené komponenty – dva možné způsoby, jejich výhody a nevýhody
  • Vytvoření ukázkové komponenty: běžící text
  • Instalace komponenty do balíku a do palety komponent
  • Opravování chyb ve zdrojovém kódu komponenty
  • Vytvoření ikony pro komponentu

Díl 48: Procházka po zajímavých vlastnostech

  • Vlastnosti související s polohou komponenty na formuláři: Left, Top, Height, Width, Align, Anchors, Constraits
  • Kurzor myši: vlastnost Cursor
  • Formulář a jeho vlastnosti
  • Styl okraje formuláře, systémová tlačítka formuláře

Díl 49: Pohrajte si s formulářem

  • Ikona formuláře, ikona celé aplikace – vytvoření a začlenění
  • Události formuláře
  • Sekvence volaných událostí při vytváření, resp. rušení formuláře
  • Metody formuláře
  • Perlička na závěr: vytvoření formuláře eliptického tvaru (použití datových typů a funkcí Windows API: datový typ HRGN, funkce CreateEllipticRgn, funkce SetWindowRgn)

Díl 50: Hypertextová historie seriálu

  • Sentimentální pohled do historie tohoto seriálu :-)
  • Obsahy jednotlivých dílů seriálu
  • Hypertextové odkazy na jednotlivé díly

A co bude dál?

Tolik tedy k historii. Doufám, že uvedený přehled využijete a že pro vás bude užitečným pomocníkem při vyhledávání popisu některého tématu Delphi. Nyní se ale pojďme podívat na to, co nás čeká v blízké budoucnosti.

Dosud jsem byl poměrně obezřetný v prozrazování toho, co nás čeká. Tuto opatrnost si zachovám i pro dnešek, nicméně přesto své plány alespoň trochu poodhalím. Činím to především proto, abych vás vyprovokoval k připomínkám a komentářům. Pokud existuje některé téma, které byste rádi v seriálu našli, nebojte se mi jej sdělit.

Při popisu plánů pro nejbližší dobu nemůžeme začít nikde jinde než v příštím dílu. Protože předchozí dva díly byly zaměřené spíše „na klikání“ než na programování, a protože dnešní díl se netýkal vývoje prakticky vůbec, za týden bychom se měli věnovat něčemu typicky programátorskému. A to také učiníme. Otevřeme totiž problematiku paralelního programování, vláken a jejich synchronizace v Delphi a popíšeme si nejčastější problémy, které v této souvislosti obvykle nastávají.

Mezi další témata, kterých bych se rád dotkl, patří popis tříd pro práci s inicializačními soubory a s registry systému Windows, jistě se podíváme také na volací konvence v Delphi, popíšeme si další komponenty (např. TreeView, která se velmi často používá). Kromě toho bych rád jeden díl věnoval „Unixové“ verzi Delphi – projektu Kylix. V plánu je také komunikace s porty (či jiná „technická“ témata), přemýšlím o knihovně OpenGL. Rozhodně se podrobněji vrátíme k databázím, při té příležitosti si také popíšeme nové databázové (i jiné) možnosti Delphi 6. V žádném případě nezapomeneme na práci s internetem a sítěmi a zaměříme se i na aplikace klient/server.

To samozřejmě není vše, ale nemohu přece odhalit veškeré své plány:)) Vidíte, že námětů je dost a důležitých témat ještě více. Pokud nám všem vydrží dosavadní entuziasmus, nemusíme se o budoucnost našeho seriálu vůbec obávat.

Diskuze (29) Další článek: Taška na obrázky

Témata článku: Software, Programování, Object Pascal, Hype, Canvas, Jednotlivé komponenty, Speciální komponent, Seriál, Hypertext, Jednotlivý díl, DEL, Podrobný přehled, Timer, Komponenta, Základní nástroj, Základní popis, Jednoduchý typ, Uživatelská data, Díl, Jednotlivý soubor, Základní možnost, Dokončené dílo, Kompletní editor, Systémová schránka, Pascal


Určitě si přečtěte

Archivovat data do cloudu, na HDD, SSD, DVD, nebo Blu-ray? Co je nejvýhodnější?

Archivovat data do cloudu, na HDD, SSD, DVD, nebo Blu-ray? Co je nejvýhodnější?

** Kam doma natrvalo uložit data? Vyplatí se ještě optická média? ** Jaké kapacity disků a médií má smysl koupit? ** Cenovou výhodnost si ukážeme na příkladech s 2TB úložištěm

Lukáš Václavík | 125

Lukáš Václavík
ZálohováníÚložištěPevné disky
Kudy proudí doprava? Na mapách můžete sledovat autobusy, vlaky, letadla i lodě

Kudy proudí doprava? Na mapách můžete sledovat autobusy, vlaky, letadla i lodě

Současná situace cestování zrovna dvakrát nepřeje, kvůli covidu můžeme jezdit leda tak prstem po mapě. A nebo můžeme prsty nechat volné a koukat, jak po mapě cestuje někdo jiný. Díky otevřeným datům dopravních či přepravních společností je to hračka.

Lukáš Václavík | 10

Lukáš Václavík
Doprava
Čím nahradit WhatsApp: Vyberte si z 10 alternativních komunikátorů

Čím nahradit WhatsApp: Vyberte si z 10 alternativních komunikátorů

** Z WhatsAppu kvůli novým podmínkám utíkají tisíce uživatelů ** Čím nahradit populární aplikaci pro zasílání zpráv? ** Vybrali jsme pro vás 10 alternativních komunikátorů

Karel Kilián | 112

Karel Kilián
KomunikaceWhatsAppInstant Messaging
Finanční správa tento měsíc spustí Moje Daně. Přiznání má být hračka
Lukáš Václavík
eIdentitaČeskoeGovernment
Vybíráme nejlepší monitory: Od úplně levných až po displeje na rozmazlování očí

Vybíráme nejlepší monitory: Od úplně levných až po displeje na rozmazlování očí

** Vybrali jsme nejlepší monitory na práci i pořádné hraní ** Nejlevnější monitor s kvalitním panelem nestojí ani tři tisíce ** Rozlišení 4K a větší obrazovka už není nedostupný luxus

David Polesný | 31

David Polesný
Monitory
Nešťastný vývojář ukazuje, proč není dobré být závislý na Googlu
Lukáš Václavík
InternetGoogle
Jak se šíří Covid v Česku: Čerstvá data, semafor PES, mapy okresů a obcí. Každý den aktualizované grafy

Jak se šíří Covid v Česku: Čerstvá data, semafor PES, mapy okresů a obcí. Každý den aktualizované grafy

** Vývoj COVID-19 v Česku: nakažení, úmrtí, testovaní, hospitalizovaní ** Mapa podle okresů, přehled podle věku, situace v Evropě i ve světě ** Každý den aktualizované grafy a mapy

Marek Lutonský | 172

Marek Lutonský
COVID-19Koronavirus

Aktuální číslo časopisu Computer

Megatest rychlých Wi-Fi 6 routerů

Jak ztišit počítač

Velký test mATX skříní