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 Ikona Jméno Popis Standard 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 Edit Button Image Timer 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) 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 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) 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 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 projekt v Delphi *.exe aplikace ve spustitelném tvaru *.pas zdrojový text jednotky *.dcu překlad jednotky *.res zdroje Windows *.cfg konfigurační soubor *.dfm vlastnosti použitých formulářů *.dof soubor s volbami projektu (obsahuje nastavení kompilátoru a linkeru) *.dci nastavení Code Insight (nástroj používaný při ladění zdrojového textu) *.dct soubor obsahuje změny šablon komponent *.dsk obsahuje informace o uspořádání oken na obrazovce