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

Dnešní jubilejní díl bude opět trochu odlišný od tradičních, běžných částí seriálu. Obsahuje totiž podrobný obsah předešlých padesáti dílů i s odkazy na příslušné články na serveru Živě. Hledáte-li možnost, jak rychle a efektivně najít příslušné téma v tomto seriálu, je pro vás dnešní článek ideální volbou.

Stručný pohled do minulosti našeho seriálu

První díl tohoto seriálu se Živě vyšel dne 19. března 2001. Jinak řečeno – s články popisujícími jednotlivé aspekty Delphi se setkáváte (s dvěma oddechovými časy) již více než rok a půl.

Stejně jako u 50. dílu, i dnešní článek věnujeme hypertextovému obsahu předešlých částí seriálu. Je zřejmé, že stodílná sága není úplně šikovná na vyhledávání, zejména potřebujete-li se dočíst podrobnější informace o některém konkrétním tématu. Níže tedy naleznete nadpisy a podrobné obsahy dílů 51 – 99 (obsah částí 1 až 49 je uveden v dílu číslo 50).

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 stý díl bude zároveň jakýmsi portálem našeho seriálu.

Poděkování

Ještě než se vrhneme na samotný hypertextový obsah, dovolím si vám, milí čtenáři, poděkovat. Doufám, že vás tím nebudu nudit.

Předešlých padesát dílů obsahuje popis širokého spektra témat, přičemž zejména v poslední době je patrný určitý odklon od ryzího, ortodoxního popisu Delphi i k dalším zajímavým problémům, které s Delphi zdánlivě příliš nesouvisí (typicky některá databázová témata). Za to, že seriál stále vychází a nachází své čtenáře, vám všem patří dík, stejně jako za vaše četné maily, náměty, připomínky a dotazy. Vysoce si cením také toho, že má prosba o zpětnou vazbu uvedená v 93. části našla u vás silnou odezvu – dostal jsem slušné množství mailů s kritickým zhodnocením své práce.

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í se už vrhneme na hlavní náplň dnešního dílu. Klepnutím na nadpis článku si můžete snadno příslušný díl otevřít.

Díl 51 – vlákna a paralelní programování: úvod

  • Popis víceúlohového zpracování - multitaskingu
  • Kooperativní vs. preemptivní multitasking
  • Souvislost multitaskingu a vláken
  • Metoda Application.ProcessMessages
  • Událost Application.OnIdle
  • Co jsou vlákna, rozdíl mezi vlákny a procesy

Díl 52 – vlákna a paralelní programování: pokračování

  • Vytvoření první aplikace používající vlákna
  • Třída TThread, metoda Execute
  • Kdy používat vlákna, kdy se jich naopak vyvarovat
  • Problémy při vícevláknovém programování
  • Druhy paralelního zpracování (funkční, datový paralelismus a zřetězené zpracování)

Díl 53 – vlákna a paralelní programování: třída TThread

  • Podrobný popis základní třídy pro práci s vlákny
  • Vlastnosti třídy TThread
  • Metody třídy TThread
  • Události třídy TThread
  • Co se stane, nebudeme-li vlákna synchronizovat
  • Možnosti synchronizace vláken – čekání na vlákno, kritické sekce

Díl 54 – vlákna a paralelní programování: pokračování

  • Pokračování popisu kritických sekcí
  • Příklad na kritické sekce
  • Další možnosti synchronizace vláken: zamykání objektů, používání synchronizátoru Multi-Read/Exclusive-Write, mechanismus vzájemného vyloučení (MUTEX), semafory
  • Priorita vláken, třída priority

Díl 55 – vlákna a paralelní programování: vlákna a MDI

  • Pokračování popisu priorit vláken: nastavování priority
  • Ukázková aplikace demonstrující priority vláken
  • Vytvoření vícevláknové MDI aplikace (každé vlákno zpracovává jeden dokument)

Díl 56 – vlákna a paralelní programování: dokončení

  • Další informace o vláknech
  • Práce s vlákny bez třídy TThread (pomocí Windows API)
  • Lokální data vláken
  • Definice správnosti (vícevláknového) programu
  • Jak postupovat, nefunguje-li program správně – ladění vícevláknových aplikací

Díl 57 – vytváření nápovědy

  • Popis systému nápovědy
  • Plovoucí nápověda (tzv. hint)
  • Způsoby, jak vytvářet nápovědu: ručně a pomocí nástrojů
  • Kroky při tvorbě nápovědy
  • Praktická ukázka vytváření nápovědy
  • Integrace nápovědy do aplikace

Díl 58 – buďte cool

  • Popis komponenty CoolBar pro vytváření vzájemně nezávislých, posuvných skupin komponent
  • Spolupráce panelu CoolBar a komponentou ToolBar
  • Vlastnosti komponenty CoolBar

Díl 59 – buďte cool, dokončení

  • Klíčová vlastnosti komponenty CoolBar: Bands

Díl 60 – nebojte se DDE

  • Základní informace o mechanismu dynamické datové výměny (Dynamic Data Exchange, DDE)
  • Jakým způsobem používat v Delphi DDE
  • Princip fungování DDE (služba, téma, položka)
  • Vytvoření jednoduchého DDE serveru v Delphi
  • Vytvoření jednoduchého DDE klienta v Delphi
  • Vyzkoušení DDE komunikace

Díl 61 – nebojte se DDE, vytváříme server

  • Podrobný popis dvou základních komponent Delphi pro vytváření DDE serverů: DdeServerConv a DdeServerItem
  • Shrnutí – jak vytvořit DDE server

Díl 62 – nebojte se DDE, vytváříme klienty

  • Podrobný popis dvou základních kokmponent Delphi pro vytváření DDE klientů: DdeClientItem a DdeClientConv
  • Příklad práce s DDE: první část – vytvoření serveru

Díl 63 – nebojte se DDE, zbývající informace

  • Pokračování příkladu z části 62 – vytvoření klienta
  • Sledování a monitorování systémové DDE komunikace (aplikace DdeSpy)
  • Aplikace, jejímž DDE klientem je Microsoft Word

Díl 64 – Delphi a zprávy systému Windows

  • Základní vysvětlení pojmu „zprávy systému Windows“, funkce zpráv a jejich význam
  • Princip zpráv ve Windows: kde zprávy vznikají, kdo je zasílá, kam jdou a kdo je zpracovává
  • Popis implementace zpráv v systému Windows
  • Zprávy systému Windows a jejich vztah k Delphi
  • Jak v Delphi obsluhovat zprávy

Díl 65 – Delphi a zprávy systému Windows, 2. část

  • Rozdíl mezi rodičem (Parent) a majitelem (Owner) komponenty
  • Událost Application.OnMessage
  • Komponenta ApplicationEvents

Díl 66 – Delphi a zprávy systému Windows, uživatelské zprávy

  • Informační zprávy
  • Uživatelsky definované zprávy
  • Vytvoření uživatelské zprávy
  • Metody a funkce pro zasílání zpráv (SendMessage, PostMessage, Perform), rozdíly mezi jednotlivými funkcemi
  • Praktická ukázka použití zpráv pro komunikaci uvnitř aplikace (zasílání zpráv v rámci jedné aplikace)
  • Princip zasílání zpráv mezi různými aplikacemi

Díl 67 – novinky Delphi 7 a komponenty ValueListEditor

  • Popis novinek, vylepšení a změn v sedmé verzi Delphi, vylepšení třídy TStrings
  • Popis komponenty ValueListEditor pro zpracovávání údajů ve formátu Jmeno=Hodnota
  • Přání veselých Vánoc :-)

Díl 68 – práce se soubory *.INI

  • Důvody používání inicializačních souborů
  • Práce s inicializačními soubory v Delphi (třída TIniFile)
  • Praktická ukázka práce s TIniFile
  • Další třída pro práci s inicializačními soubory – TmemIniFile
  • Metody třídy TIniFile

Díl 69 – práce se systémovým registrem

  • Co je registr systému Windows
  • Jak jej můžeme používat ve svých aplikacích
  • Práce s registrem v Delphi – třída TRegistry
  • Ukázka aplikace využívající registry systému Windows

Díl 70 – práce se systémovým registrem, dokončení

  • Na co používat (a na co naopak ne) systémový registr
  • Podrobnější popis třídy TRegistry (vlastnosti, metody)
  • Jednoduchý přechod z inicializačních souborů na registr – třída TRegistryIniFile

Díl 71 – ikona ve stavové oblasti hlavního panelu (tray ikona)

  • Co je systémová oblast hlavního panelu (tray) a kde ji najít
  • K čemu tato oblast slouží
  • Úvod do vytvoření komponenty, která umožní skrýt aplikaci do této oblasti
  • Základní funkce pro práci s tray ikonou: Shell_NotifyIcon

Díl 72 – tray ikona, 2. část

  • Pokračování vývoje komponenty pro práci s tray ikonou
  • Rozhraní pro příjem zpráv z tray ikony
  • Vlastnosti naší nové komponenty TrayIkona
  • Popis funkce Windows API – ShowWindow

Díl 73 – tray ikona, dokončení tvorby

  • Dokončení vytváření komponenty TrayIkona
  • Definice událostí komponenty
  • Zbylé činnosti při programování ikony

Díl 74 – tray ikona, instalace a používání

  • Jak nainstalovat komponentu do palety komponent v Delphi
  • Vytvoření aplikace používající komponentu TrayIkona

Díl 75 – databáze v Delphi, obecný úvod

  • Úvod do problematiky databází a jejich vztahu k vývojovému prostředí Delphi
  • Architektura databází v Delphi (4 vrstvy – uživatelské rozhraní, datový zdroj, datová sada, připojení k serveru)
  • Jak podporuje integrované prostředí Delphi práci s databázemi
  • Používání datových modulů
  • Nástroj Object Tree View

Díl 76 – databáze v Delphi, navrhujeme databázi

  • Co je vlastně databáze (báze dat), k čemu slouží, kde se používá a jaké jsou na ni obvykle požadavky
  • Systém řízení báze dat, banka dat
  • Jazyk SQL (Stuctured Query Language) jako základní rozhraní mezi uživatelem-programátorem a databázovým serverem
  • Jak jsou data v databázích uspořádána, jak modelujeme data – Coddův relační model dat, soustava tabulek
  • Ukázka jednoduchých databázových dotazů
  • Návrh rozsáhlejších databází: klíče, primární klíče, cizí klíče
  • Relace (vztahy) mezi tabulkami: relace 1:1, 1:N, M:N
  • Jak vyřešit realizaci vazby M:N

Díl 77 - databáze v Delphi, jaké máme možnosti?

  • Dokončení textu z předchozího dílu: příklady dotazů nad více tabulkami
  • Kam zapisovat SQL dotazy?
  • Jaké jsou možnosti práce s databázemi v Delphi (BDE, ADO, dbExpress, InterBase)
  • Co je nutné instalovat při vývoji (a šíření a používání) databázových aplikací?

Díl 78 – databázová aplikace v BDE

  • Kroky nutné k vytvoření databázové aplikace pracující pomocí rozhraní Borland Database Engine (BDE)
  • Registrace databázového BDE aliasu
  • Vytvoření databáze v klientském programu Database Desktop
  • Naplnění tabulek daty v klientském programu Database Desktop
  • Návrh databázové aplikace v Delphi
  • Rozšiřování a vylepšování aplikace
  • Parametrické dotazy

Díl 79 – databázová aplikace Master/Detail

  • Formuláře 1:N a jejich vztah k databázím
  • Vytvoření BDE aplikace Master/Detail pomocí průvodce Delphi
  • Jak funguje aplikace Master/Detail?

Díl 80 – pod povrch formulářů Master/Detail

  • Podrobný popis principu fungování aplikací Master/Detail
  • Popis komponenty DBEdit
  • Datové sady a datové zdroje ve vztahu k formulářům Master/Detail
  • Problematika identifikátorů v databázích

Díl 81 – zajímavé databázové komponenty

  • Komponenty pracující s databázemi BDE: Database, Session, BatchMove, UpdateSQL
  • Další databázové komponenty pro práci s každou databází – mřížka DBGrid, DBText, DBEdit, DBMemo, DBRichEdit, DBListBox, DBComboBox, DBRadioGroup, DBCheckBox apod.

Díl 82 – vylepšujeme aplikaci o grafy

  • Prezentace grafických výstupů aplikace ve formě grafů
  • Komponenta Chart pro vytváření grafů a jejich vkládání do aplikací
  • Umístění komponenty na formulář a správné nastavení
  • Konfigurace datových řad
  • Změny vzhledu grafu
  • Podrobnější popis grafů a datových řad
  • Ukázka jednoduché aplikace využívající graf

Díl 83 – databázová aplikace s grafy

  • Dokončení problematiky „běžných“ grafů z předchozího článku
  • Popis rekurzivních algoritmů
  • Vyhledávací algoritmus pro hledání souborů na disku
  • Graf jako výstup z databáze: komponenta DBChart

Díl 84 – tvorba instalačních balíků

  • Instalační balíky – používat je nebo nikoliv?
  • Jakým způsobem se postavit k vytváření instalačních balíků
  • Program InstallShield Express
  • Trocha teorie – co je obsahem instalačního balíku
  • Instalační balíky pro databázové aplikace
  • Instalace programu InstallShield Express
  • Práce s aplikací InstallShield Express

Díl 85 – tvorba instalačních balíků prakticky

  • Kroky potřebné pro vytvoření instalačního balíku pomocí aplikace InstallShield Express – začátek: nastavení, specifikace aplikačních dat, konfigurace cílového systému

Díl 86 – tvorba instalačních balíků, dokončení

  • Pokračování – kroky potřebné pro tvorbu instalačního balíku pomocí aplikace InstallShield Express: nastavení vzhledu instalace, definice požadavků a akcí instalace, příprava pro uvolnění

Díl 87 – jak zprovoznit BDE aplikaci na počítači, kde není BDE

  • Lze provozovat BDE aplikaci na počítači, kde není Delphi? Jak?

Díl 88 – co se souborem PDOXUSRS.NET?

  • K čemu slouží soubor PDOXUSRS.NET
  • K čemu slouží vlastnost PrivatDir
  • Ukázka práce s PrivateDir a NetFileDir
  • Komponenta Session a její použití v dané problematice, metody komponenty Session

Díl 89 – databáze Interbase: úvod a instalace

  • Úvodní informace k databázovým platformám InterBase a Firebird
  • Jak používat databázové platformy InterBase a Firebird
  • Instalace databázového serveru Interbase nebo Firebird
  • Vytváření databáze pomocí standardně dodávané klientské aplikace IBConsole

Díl 90 – databáze Interbase: vytváříme tabulky

  • Vytvoření rozsáhlejší databáze pro demonstraci různých databázových principů a pro ukázku platformy Interbase/Firebird
  • Návrh struktury databáze (návrh tabulek, jejich atributů a vzájemných vazeb)
  • Práce – vytvoření tabulek a struktury – s klientskou aplikací IBConsole
  • SQL skript pro definici tabulek a vzájemných vazeb

Díl 91 – první Interbase aplikace v Delphi

  • Ukázka vložení dat do databázových tabulek pomocí klientské aplikace IBConsole
  • Ukázka vložení dat do databázových tabulek pomocí SQL skriptu
  • Problematika generátorů
  • Vytvoření aplikace pracující s databází Interbase v Delphi
  • Vylepšení aplikace – databázový SQL dotaz

Díl 92 – komponenty Interbase a tvorba SQL dotazů

  • Obecné informace o databázových komponentách ze záložky Interbase
  • Popis komponenty IBTable
  • Popis komponenty IBQuery
  • Tvorba databázových SQL dotazů, jednodušší a složitější dotazy

Díl 93 – seznamte se: uložené procedury

  • Popis uložených procedur
  • Jazyky pro definici, jazyky pro manipulaci s daty, jazyky pro přístup k datům
  • Uložené procedury vracející data a uložené procedury nevracející žádná data
  • Použití uložených procedur
  • Výhody uložených procedur a jejich nedostatky
  • Dva základní druhy uložených procedur: spustitelné (executable) procedury a výběrové (select) procedury
  • Komponenty IBStoredProc pro práci se spustitelnými uloženými procedurami v Interbase

Díl 94 – vytváříme uložené procedury

  • Popis uložených procedur v BDE
  • Praktická ukázka vytvoření výběrové (select) uložené procedury

Díl 95 – spustitelné uložené procedury

  • Aplikace v Delphi pracující s uloženou procedurou
  • Zákaz zobrazování dialogu pro přihlášení k databázi v Delphi
  • Praktická ukázka vytvoření spustitelné (executable) uložené procedury

Díl 96 – databáze Interbase: komponenta IBDatabase

  • Popis komponenty IBDatabase
  • Vlastnosti komponenty IBDatabase
  • Vytvoření ukázkové aplikace – seznam databázových tabulek a jejich sloupců

Díl 97 – databáze Interbase a znakové sady

  • Problematika znakových sad se zaměřením na databáze Interbase
  • Znakové sady (Character Sets) a pořadí porovnávání (Collation Orders)

Díl 98 – konzistence databáze, integrita dat a transakce

  • Popis pojmu konzistence databáze, důvody nekonzistence, prostředky pro zajištění konzistence
  • Vztah konzistence a transakcí, popis transakcí
  • Stavy „v životě“ transakcí, přípustné přechody mezi stavy

Díl 99 – jak zajišťuje databázový systém konzistenci a integritu?

  • Pohled pod pokličku databázových systémů
  • Popis pojmu žurnál, způsoby jeho využití
  • Obsah žurnálu
  • Metody čtení žurnálu – dopředné (REDO) a zpětné (UNDO, ROLLBACK)
  • Metoda dvoufázového potvrzování
  • Metoda přímého zápisu do databáze
  • Strategie přímého zápisu do databáze v praxi

Díl 100: Hypertextová historie seriálu

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

Kupředu, zpátky ni krok

Tolik tedy k historii. Věřím, že uvedený přehled shledáte přínosným a že pro vás bude užitečným pomocníkem při vyhledávání konkrétního tématu.

Avšak dost k minulosti. Zajímavější bude (alespoň doufejme) budoucnost, a proto se do ní pojďme pokusit nahlédnout.

V nejbližší době bych nejprve rád dokončil téma databázové platformy Interbase. Protože se mi však zdá, že databází bylo v poslední době již více než dost, plánuji poté učinit v této problematice krátkou přestávku. V ní se plánuji věnovat některým dalším, zajímavým tématům, například síťovým či internetovým (sockety a Indy). K databázím se později samozřejmě vrátíme, neboť se jedná bezesporu o téma s ohromnou využitelností (zvláště pak v dnešní době).

Na druhou stranu bych nerad, aby se seriál odklonil od svého původního záměru – totiž pomáhat začátečníkům a učit je i jednoduchá témata, která jsou pro ně možná zajímavější než pokročilé oblasti síťového programování. Proto se nebudu vyhýbat ani jednodušším oblastem – vylepšování uživatelského vzhledu aplikací, spolupráce s Windows a Office apod.

Věřím, že pokud jste dosud v seriálu nalézali inspiraci a rady ke své práci, bude totéž platit i v příští stovce článků. Načneme ji hned za týden.

Diskuze (17) Další článek: Windows Media 9 jako otevřený formát!

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,