19. Delphi

Delphi je integrované grafické vývojové prostředí firmy Borland určené pro tvorbu aplikací na platformě MS Windows v jazyce Object Pascal(objektové nástavbě Pascal). Obsahuje systém RAD (Rapid Application Development), který umožňuje vizuální návrh grafického uživatelského rozhraní, na jehož základě je automaticky vytvářena kostra zdrojového kódu, což výrazně urychluje vývojový cyklus.

Programování v Delphi je z velké části založeno na použití komponent. Komponenta je malý program (balíček funkcí), který vykonává určitou činnost (například zobrazuje text nebo obrázky, přehrává multimédia, komunikuje s databází, zprostředkovává FTP přenos, atd…).

Velkou předností Delphi proti některým konkurenčním produktům jsou knihovny komponent, které jsou jejich součástí (např. VCL, CLX, Indy …). Dodávané komponenty významně usnadňují tvorbu aplikací. Další komponenty lze stáhnout z internetu (některé jsou zadarmo, některé se musí koupit). V Delphi lze vytvářet vlastní komponenty.

Delphi jsou dodávány v různých verzích s rozdílnými znaky a odlišnou cenou: Personal, Professional, Enterprise (dříve Client/Server) a Architect.

Charakteristické znaky

Mezi charakteristické znaky vývojového prostředí Delphi patří:

  • založeno na programovacím jazyce Pascal
  • používá VCL (Visual Component Library) a CLX (Component Library for Cross Platform)
  • možnost propojení s databázemi
  • tvorba a použití komponent (resp. možnost importu existujících komponent např. z webu)
  • dopředná deklarace metod a členských proměnných objektových tříd (blok interface)
  • používání vlastních zpráv k vyvolávání událostí jednotlivých tříd
  • objektový model je nezávislý na počtu implementací jednotlivých tříd
  • možnost kompilace do x86 kódu nebo převedení do .NET kódu

Výhody

  • podpora systému RAD (Rapid Application Development)
  • založení na vyšším programovacím jazyce
  • podpora v rámci komunit na webu (např. newsgroups.borland.com a Borland’s web access to Delphi newsgroups)
  • možnost kompilace do jednoduchého spustitelného kódu s eliminací funkcí dynamických knihoven
  • podpora VCL (Visual Component Library), importu komponent a nástrojů (dokumentace, ladění atd.)
  • rychlá optimalizace kódu pro převedení do jazyka symbolických adres
  • přenositelnost vytvořeného zdrojového kódu mezi platformami (např. do prostředí Kylix)
  • kompatibilita zdrojových kódů vytvořených ve starších verzích vývojového prostředí s novými verzemi (v některých případech, např. u datových typů, je kompatibilita starších verzí s nejnovějšími omezena a jsou nutné úpravy zdrojového kódu, kompatibilita kódu je také výrazně omezena při použití komponent třetích stran)
  • znaky objektově orientovaného programovacího jazyka s možností dědičnosti a polymorfismu v rámci objektových tříd

Nevýhody

  • výsledný kód není příliš optimalizovaný.
  • žádná z verzí Delphi se nedočkala stálého vydání

Historie

Turbo Pascal, později Borland Pascal, byl levným a velmi kvalitním kompilátorem a při svém prvním uvedení na trh přinesl revoluci v oblasti vývojových nástrojů. Během let prošel řadou úprav a používal se především k tvorbě programů, které slouží k zobrazování textů. V souvislosti s rozvojem grafického uživatelského rozhraní (GUI), které se uplatnilo současně se vznikem OS Microsoft Windows 3, bylo představeno vývojové prostředí Delphi, jež bylo založeno na programovacím jazyku používaném v Borland Pascalu. Delphi se stalo jedním z prvních vývojových prostředí, které systém RAD (Rapid Application Development) využívalo. Tento systém byl poprvé představen s 16bitovým operačním systémem Windows 3.1. Delphi 2, podporující 32bitové prostředí Windows, bylo uvedeno na trh v následujícím roce.

  • hlavním tvůrcem stojícím za vznikem Delphi byl Anders Hejlsberg, který vytvářel Turbo Pascal. V roce 1996 přešel ke společnosti Microsoft
  • v roce 2001 byla uvedena na trh Linuxová verze Kylix. Za svou nízkou kvalitu se nedočkala pozitivního ohlasu a její vývoj byl zanedlouho přerušen
  • oboustranná podpora pro platformy Windows a Linux byla uvedena na trh v roce 2002 v souvislosti s vydáním Delphi 6
  • verze Delphi 8, představené v prosinci 2003, byla doplněna nástroji pro vývoj .NET aplikací
  • následující verze, Delphi 2005 (Delphi 9), sjednocuje vývoj aplikací pro Win32 a .NET. V závěru roku 2005 byly představeny Delphi 2006, které sjednocují vývojové prostředí C# a Delphi.NET, resp. C++ a Delphi Win32
  • dne 16.3.2007 byly vydány Delphi 2007, vytvořené firmou CodeGear, která byla dceřinou společností Borlandu
  • Verze Delphi 2009 už byla vydána pod hlavičkou společnosti Embarcadero
  • současná verze DX Delphi  od společnosti Embarcadero pro všechny OS (i mobilní)

 

Princip Vizuálního programování

Vizuální návrh formuláře

IDE na počátku vytvoří prázdné okno (formulář) budoucí aplikace. V režimu vizuálního návrhu vkládáme pomocí myši do okna požadované komponenty – IDE okamžitě vytvoří odpovídající zdrojový kód v příslušném jazyce.

Nastavení vlastností komponent

Vlastnosti komponent (název, umístění, nápis na ní, barvu, viditelnost atd.) můžeme měnit pomocí inspektoru objektů, přičemž změny se opět ihned promítají do vizuálního návrhu a generovaného zdrojového kódu.

Definice ohlasových metod

Prostřednictvím inspektoru objektů můžeme také pracovat s událostmi jednotlivých objektů a definovat ohlasové metody na různé akce (stisknutí tlačítek, pohyb myši, uzavření okna apod.).

Úpravy zdrojového kódu

Přejdeme-li do režimu zdrojového kódu, můžeme pracovat se zdrojovým kódem jednotlivých tříd. Případné úpravy se při návratu do režimu vizuálního návrhu ihned zobrazí – z toho důvodu hovoříme o tzv.dvoucestném nástroji.

Popis prostředí a základy ovládání Delphi

Hlavní okno

Obsahuje hlavní nabídku, panely nástrojů a lištu komponent, která jsou pomocí záložek rozděleny do skupin. Po označení komponenty a kliknutí do návrhu formuláře se vytvoří nový platný objekt aplikace, automaticky pojmenovaný názvem komponenty a pořadovým číslem. Díky dvoucestnosti Delphi se kromě vizuální podoby objektu v návrhu formuláře vygeneruje také potřebný kód v programové jednotce formuláře (viz níže).

Formuláře

Formulář je jedním z oken námi vytvářené aplikace. Těchto formulářů může mít aplikace několik a na každý z nich je vázána samostatná programová jednotka. Na plochu formuláře přidáváme komponenty a vytváříme vizuální návrh uživatelského rozhraní aplikace. Pro jednodušší uspořádání prvků formuláře můžeme použít některých pomůcek z místní nabídky: zarovnání skupiny, uzamčení atd. K přesnějšímu nastavení polohy a velikosti komponent využijeme kurzorových kláves při současném stisku CTRL (změna polohy) nebo SHIFT (změna velikosti).

Object TreeView

V tomto okně se zobrazuje hierarchie komponent daného formuláře. Graficky jsou zde naznačeny vztahy mezi komponentami: vlastníkem (owner) a současně rodičem (parent) všech ostatních komponent je v tomto případě komponenta formuláře. Komponenty Button1 a Button2 jsou potomky (children) komponenty Form1.

Object Inspector

Inspektor objektů poskytuje přehled vlastností a událostí vybrané komponenty. Vybrat komponentu můžeme označením v návrhu formuláře, označením jejího názvu v Object TreeView nebo výběrem ze seznamu v horní části Object Inspectoru. Inspektor objektů obsahuje dvě karty:

Kartu Properties používáme pro nastavení jednotlivých vlastností komponenty (výběrem ze seznamu hodnot, přímou editací, volbami v dialogovém okně apod.). V mnoha případech má změna vlastnosti vliv na vizuální podobu komponenty (např. změna polohy, výšky, šířky, popisku atd.). Někdy se nastavená vlastnost projeví až při běhu aplikace.

Karta Events slouží k přiřazení ohlasových metod jako reakcí na určitou událost, kterou je schopna komponenta vyvolat. Při dvojkliku do editační oblasti seznamu událostí se automaticky zobrazí příslušná ohlasová metoda jako procedura ve zdrojovém kódu programové jednotky. V některých případech je vhodné využít již hotových ohlasových metod a přiřadit je události jednoduše výběrem ze seznamu.

Obsah a podobu Object Inspectoru můžeme ovlivnit pomocí místní nabídky (skrýt nebo zobrazit určitou položku, řadit seznam položek např. i podle kategorií atd.). Některé vlastnosti obsahují další, podřízené vlastnosti, což poznáme podle znaménka + zobrazeného u názvu vlastnosti.

Editor zdrojového textu

Editor zdrojového textu slouží ke vkládání vlastního programového kódu v jazyce Object Pascal. Nejčastěji jsou v tomto editoru zobrazovány programové jednotky (unit), které jsou svázány s formulářem. Psaní zdrojového textu usnadňuje několik pomůcek, které souhrnně označovány jako Code Insight.

Code Explorer

Je dokován vlevo od editoru zdrojového textu a zobrazuje hierarchicky metody, proměnné a konstanty deklarované uvnitř komponenty. Slouží především k rychlému nalezení deklarace proměnné či funkce ve zdrojovém textu.

Delphi

  • Vlastnosti
    • vývojové prostředí původně vyvinuté firmou Borland.
    • k programování úloh se využívá programovací jazyk Object Pascal.
  • Vizuální programování
    • uživatelské prostředí se vytváří pomocí komponent knihovny VCL (Visual Component Library)
    • VCL využívá knihovnu Windows API
  • Vývojové prostředí
    • Pracovní okno – Návrh formuláře – DESIGN, Editor zdrojového kódu – CODE
    • Pomocná okna
      • Editor objektů – OBJECT INSPECTOR
      • Okno nástrojů (komponent) – TOOL PALETTE
      • Prohlížeč struktury – STRUCTURE
      • Správce projektu – PROJECT MANAGER
  • Struktura projektu
    • DPR – soubor projektu Delphi – otevírá soubory projektu PROJETS (BDSPROJ – nové verze od 2005)
    • PAS – soubory programových kódů Pascalu – programové jednotky UNITS
    • DFM – soubory formulářů – textové soubory s definicemi vlastností formuláře
    • RES – soubor zdrojů – soubor pro kompilaci ikon a bitmap aplikace
    • EXE – Kompilovaný soubor – spustitelný program

Komponenty a události

  • Důležité komponenty
    • Formulář FORM – Name, Caption, Width, Height, Color …
    • Tlačítko BUTTON – Name, Caption, Left, Top …
    • Popisek LABEL – Name, Caption, Font …
    • Vstupní pole EDIT – Text, ReadOnly, Enabled …
    • Seznamy LISTBOX, COMBOBBOX – Items, ItemIndex
    • Textové pole MEMO, RICHEDIT – Text, Lines, Clear, Select, Copy, Add, Delete, Load, Save
    • Roletové menu – MAINMENU – Items, Caption, Enabled, ShortCut …
    • Dialogy – OPEN, SAVE, PRINT, FONT, COLOR …
    • Časovač TIMER – Enabled, Interval …
  • Důležité události
    • Události klávesnice – KeyPress, KeyUp, KeyDown …
    • Události myši – Click, DblClick, MouseUp, MouseDown, MouseMove, MouseWheel …
    • Běhové události – Create, Activate, Change, Close, Resize …

Zpracování dat

  • Vstup dat
    • využití editačního pole EDIT
      • propojení se stiskem tlačítka pro potvrzení nebo s událostmi OnChange a KeyPress
    • využití funkce InputBox
    Jmeno:= InputBox('Zadejte jméno', 'Zadejte prosím jméno a příjmení: ');
    • využití dalších komponent – LISTBOXMEMO (COMBOBOX, CHECKBOX, RADIOBUTTON)
  • Konverze dat
    • využití konverzních funkcí
      • StrToInt – text <–> celá čísla – IntToStr
      • StrToFloat – text <–> reálná čísla – FloatToStr
  • Kontrola dat
    • využití vyjímek pomocí konstrukce TRY – EXCEPT
        try 
          {chráněné příkazy} 
        except 
          on {typ_výjimky} do {příkazy}
        end;
  • Výstup dat
    • využití pole EDIT a atributem ReadOnly
    • využití popisku LABEL
    • využití zobrazení hlášky ShowMessage

Verze Delphi v současnosti a historii