Realizace algoritmu v Delphi Jedná se o výukový materiál určený k shrnutí učiva pro ty, co nemají žádné dřívější zkušenosti s programováním. Není to určené k učení nazpaměť, tím pádem je to obsáhlejší. Ale snažil jsem se zahrnout vše podstatné a důležité. Nejdůležitější je ovšem si všechno sám vyzkoušet.
Klíčová slova – předdefinovaná slova se specifickým významem (např. procedure, program, begin, end, var), Delphi je zvýrazňuje tučným písmem.
Identifikátor – posloupnost znaků, která pojmenovává program, proměnné, komponenty, konstanty (které definoval uživatel), procedury, funkce, … (vše, co programátor vytvořil), identifikátor se nesmí shodovat s klíčovým slovem, v identifikátoru smí být použita jen písmena anglické abecedy, čísla a podtržítko.
Syntaxe – „pravopis“ programovacího jazyka
Object Pascal – jazyk, který používá Delphi.
Zdrojový kód – program zapsaný v programovacím jazyce.
Překladač – vytváří ze zdrojového kódu spustitelný soubor (*.exe).
Kompilace – přeložení zdrojového kódu na spustitelný program.
Poznámka – část textu, kterou překladač ignoruje; slouží pouze pro programátora, dá se zapsat třemi způsoby: 1. {mezi složené závorky} 2. (* mezi závorky s hvězdičkami *) 3. //za dvě lomítka, tato poznámka se neukončuje a nepokračuje na dalším řádku!
Projekt – nepřeložený program.
Z čeho se skládá projekt v Delphi (pokud chcete uložit všechny změny, dávejte Save all, protože projekt se skládá z více souborů): 1. soubor *.dpr (Delphi project) – základ projektu, sdružuje všechny formuláře a zdrojové kódy, dá se přeložit a spustit; chcete-li pracovat na projektu, otevírejte tento soubor 2. soubor *.pas – obsahuje unitu (část programu) s příslušnou částí zdrojového kódu, v projektu může být více těchto souborů 3. další soubory, které Delphi vytváří samo a o které se zatím nemusíte starat
Prostředí Delphi Delphi se skládá z několika oken. Nejdůležitějším je hlavní okno s menu a paletami objektů. Všimněte si také zelené šipky (Run), po jejímž spuštění se projekt zkompiluje a spustí.
Z palet můžete myší přidávat objekty na formulář, kde je můžete přemisťovat a měnit jejich velikost.
S formulářem je spojen zdrojový kód, kde vytváříte většinu programu. Mezi editorem zdrojového kódu a formulářem můžete přepínat klávesou F12. V jeho spodní části se při neúspěšné kompilaci (kvůli chybě nemohl být projekt přeložen) objevují chyby v syntaxi.
Dalším velmi důležitým oknem je ObjectInspector, ve kterém nastavujete vlastnosti objektů (na záložce Properties) a reakce na události (na záložce Events). Dávejte si pozor, který objekt editujete. Poslední okno, které oceníte hlavně při práci na větších projektech, je Object Tree View. Zde jsou zobrazeny všechny objekty a jejich hierarchie a vy si mezi nimi můžete přepínat. Všimněte si, že formulář (tady Form1) není jediný prvek, pod který mohou být přiřazeny objekty.
Všechna okna si můžete podle vlastní potřeby posunout a upravit jejich velikost (velikost okna s formulářem je zároveň výchozí velikostí okna výsledného programu).
Vlastnosti objektů a události Každý objekt má v Delphi určité vlastnosti, které si můžete měnit v Object Inspectoru. Mezi základní vlastnosti, které má většina objektů (ale ne všechny), patří tyto:
Name – jméno objektu (je to identifikátor)
Visible – viditelnost; udává, je-li objekt zobrazován, nebo ne Enabled – zda-li je objekt aktivní (jestli jej uživatel může použít; pokud není aktivní, je zašedlý) Top – vzdálenost od horního okraje nadřazeného objektu (většinou formuláře) Left – vzdálenost od levého okraje nadřazeného objektu (většinou formuláře) Height – výška objektu Width – šířka objektu Tag – program jej k ničemu nevyužívá, můžete si do něj uložit vlastní hodnotu bez ovlivnění chování a vzhledu objektu
Programování v Delphi je založeno na událostech. Událost je každá akce vykonaná uživatelem (ale ne každá událost je vyvolaná uživatelem) – např. pohyb myší, zmáčknutí tlačítka nebo klávesy,… Vyvolaná událost se týká vždy aktivního objektu (má tzv. Focus), při standardním nastavení přepíná uživatel aktivitu objektů tabulátorem. Reakce na události se editují v Object Inspectoru po přepnutí na záložku Events. Příslušné procedury vytvoří Delphi po dvojkliku na políčko vedle požadované položky. Základní události (u většiny objektů) jsou tyto:
onClick – kliknutí na objekt onKeyDown – zmáčknutí klávesy onKeyPress – držení zmáčknuté klávesy onKeyUp – uvolnění („odmáčknutí“) klávesy onMouseDown – zmáčknutí tlačítka myši (dokáže rozlišit mezi pravým a levým tlačítkem)) onMouseMove – pohyb kurzoru myši nad objektem onMouseUp – uvolnění tlačítka myši
Objekt formulář má navíc ještě další důležité události:
onCreate – proběhne po vytvoření formuláře onClose – proběhne po ukončení formuláře onDeactivate – deaktivování okna (uživatel jej minimalizoval nebo přepnul na jiné okno/aplikaci) onActivate – aktivování okna
Přehled základních objektů Objektů máte k dispozici hned několik palet. Na začátku každé palety je ještě šipka, která označuje výběrový nástroj. Následující tabulka zachycuje přehled nejpoužívanějších objektů.
Paleta Standard
Ikona
Jméno
Popis
Label
Nápis
Standard
Edit
Pole pro zadávání textu uživatelem
Standard
Button
Tlačítko
Additional
Image
Obrázek
System
Timer
Časovač
Pro většinu objektů máte k dispozici základní vlastnosti a ještě další specifické vlastnosti, které zachycuje následující přehled. Label
Caption:String – text nápisu Color:TColor – barva pozadí Font:TFont – písmo nápisu (skládá se z více vlastností) Transparent:Boolean – průhlednost pozadí (pokud je True, je pozadí průhledné) WordWrap:Boolean – rozložení dlouhého Captionu na více řádků (pokud je vlastnost nastavena na True)
Edit
Color:TColor – barva pole Font:TFont – písmo ReadOnly:Boolean – jen pro čtení (je-li hodnota False, uživatel nemůže měnit obsah) Text:String – text v poli
Button
Caption:String – nápis na tlačítku Font:TFont – písmo WordWrap:Boolean – rozložení dlouhého Captionu na více řádků (pokud je vlastnost nastavena na True)
Image
Picture:TPicture – zobrazený obrázek Stretch:Boolean – přizpůsobení obrázku (Picture) velikosti objektu (je-li True) Transparent:Boolean – průhlednost pozadí (tj. body s barvou, jako má bod v levém dolním rohu)
Timer Timer je systémový objekt, nikdy jej nevidíte (i když má v editačním módu také svůj zastupující obrázek na formuláři), nemůžete tedy změnit jeho velikost, viditelnost, atd. Interval:Cardinal – perioda v milisekundách, po uběhnutí této doby nastane událost onTimer
Enabled:Boolean – u Timeru funguje tato vlastnost trochu jinak než u jiných objektů; udává, zda-li je Timer aktivní (odpočítává dobu), nebo není
onTimer:TNotifyEvent – vykoná se po uplynutí doby Interval
Ke všem vlastnostem se přistupuje JmenoObjektu.JmenoVlastnosti, např. vlastnost Caption objektu Button1: Button1.Caption
Základní syntaxe Syntaxe, jak jsem již říkal, je „pravopis“ programovacího jazyka. Výhodou Delphi je, že si většinu věcí vytvoří samo, takže dokud vám vyhovuje výchozí nastavení, nemusíte se o nic starat. Delphi nevadí mezery a řádky, které jsou navíc, proto se nebojte je používat pro zpřehlednění zápisů. Nepsaným pravidlem je odsazovat podřazené řádky vždy o další 2 mezery (viz ukázky zdrojových kódů). Delphi také nerozlišuje malá a velká písmena v názvech (objektů, proměnných, …). Pokud si přepnete na editor zdrojového kódu, uvidíte toto (doplněno poznámkami): unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) //v této části se deklarují objekty, procedury a funkce private { Private declarations } public { Public declarations } //v této části se deklarují proměnné end; var Form1: TForm1; implementation {$R *.dfm} //v této části se definují (rozlišujte od deklarují!) procedury a funkce end. (*značí konec programu, jediný end zakončený tečkou, text za tímto endem překladač ignoruje*) Některé procedury si Delphi vytvoří samo, např. dvojklikem na některou událost v Object Inspectoru, na vás pak zůstává naprogramovat její činnost. Zdrojový kód poté vypadá třeba takto: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin //tady jsou příkazy, které se mají vykonat při stisknutí tlačítka end; end. Použití procedur a funkcí v programu se označuje jako jejich volání. Funkce se od procedur liší tím, že vracejí výsledek (procedury jen vykonají posloupnost příkazů), zastupují tedy hodnotu.
Struktura programu v Delphi Program v Delphi js sesatven ze zdrojových souborů – jednotek (units), které jsou psány v Pascalu (*.pas). Každá jednotka je kompilována samostatně (do souboru *.dcu) Tyto zkompilované unity jsou přímo spojeny s vlastním vytvářením aplikace (tzv. linkování). Hlavní program je v Delphi uložen jako projekt (*.dpr), v jehož hlavičce v klauzuli uses se automaticky ukládají odkazy na připojené unity. Hlavním úkolem projektu je vytvořit formuláře a spustit běh aplikace. Informace o vlastnostech použitých formulářů si Delphi ukládá do souboru *.dfm. Resource soubor *.res je soubor se zdroji operačního systému Windows. Soubor *.cfg je kofigurační soubor projektu. Všechny budou umístěny v téže složce dané aplikace. Přehled souborů v projektu *.dpr *.exe *.pas *.dcu *.res *.cfg *.dfm *.dof *.dci *.dct *.dsk
projekt v Delphi aplikace ve spustitelném tvaru zdrojový text jednotky překlad jednotky zdroje Windows konfigurační soubor vlastnosti použitých formulářů soubor s volbami projektu (obsahuje nastavení kompilátoru a linkeru) nastavení Code Insight (nástroj používaný při ladění zdrojového textu) soubor obsahuje změny šablon komponent obsahuje informace o uspořádání oken na obrazovce