Delphi Objektově orientované programování Programování řízené událostmi
Vlastnosti Delphi Delphi je objektově orientovaný jazyk Delphi umožňuje –spojovat data a kód do tříd (zapouzdření, encapsulation) –vytvářet odvozené třídy (dědičnost, inheritance) –pracovat s odvozenou třídou jako s jejím předkem (polymorfismus, mnohotvárnost) problém chyb běhu řeší pomocí výjimek – konstrukce try – except - end
Prostředí Delphi Delphi je také kompilátor jazyka Object Pascal s integrovaným vizuálním prostředím obsahuje –menu s nápovědou –knihovnu komponent členěnou do sekcí (Standard, Additional, System, Dialogs…) –Object Tree View, stromová struktura objektů –Object Inspector, vlastnosti a události –Code editor, editor kódu, kde píšeme
Projekt aplikace v Delphi se nazývá projekt části projektu –projektový soubor *.dpr –popis formuláře *.dfm –unita *.pas –nastavení překladače *.dof –ikona projektu *.res –spustitelný soubor *.exe –přeložená unita *.dcu
Rozdělení komponent vizuální, viditelné –většina prvků (label, edit, button…) –základní komponenta je formulář, typ TForm nevizuální, neviditelné –slouží pro speciální akce (timer, dialogy, menu) –po spuštění na formuláři nejsou viditelné Umístěním komponenty na formulář se vytvoří její instance, v unitě se objeví nová proměnná
Přehled vizuálních komponent formzáklad projektu editvstup i výstup jednořádkového textu Edit1.Text labelpopisek,Label1.Caption buttontlačítko, provedení akce (události) memovíceřádkový text, položka Lines LoadFromFile, SaveToFile - soubor Clear, Add, Memo1.Clear; Memo1.Lines.Add(‘a‘) image, shape obrázek, automatický tvar Picture
Přehled vizuálních komponent spineditčíselník, lze použít i updown SpinEdit.value: integer posuvník, zadání číselných hodnot Scrollbar.Position: integer checkbox, radiobutton zatržítko, přepínač checked: boolean panel, groupbox tvorba skupin combobox, listboxrozbalovací seznam Items k naplnění dat, ItemIndex pořadí radiogroup skupina přepínačů, Items, ItemIndex
Přehled nevizuálních komponent timerčasovač, měření časového intervalu událost OnTimer (uplynutí intervalu) mainmenu hlavní vysunovatelné menu - čára,ShortCut je nastavení klávesové zkratky (Ctrl+S) popupmenu kontextové menu (PT myši) opendialog, savedialog výběr jména souborů fontdialog výběr fontu (barva, řez, velikost) colordialog výběr barvy při použití dialogu se používá metoda.execute if OpenDialog1.execute then Memo1.LoadFromFile(OpenDialog1.Filename)
Práce se schránkou Schránka Windows = ClipBoard Ctlr + C – CopyToClipBoard Ctlr + X – CutToClipBoard Ctlr + V – PasteFromClipBoard Nejčastěji se používá v memu. memo1.CopyToClipboard; memo2.PasteFromClipboard;
Object inspector Zajišťuje spojení mezi vzhledem aplikace a jejím zdrojovým kódem nastavení vlastností komponent v době návrhu na listu properties manažer událostí na listu events seznam instancí v object selektoru vzhled Object inspectoru lze také nastavit
Object Tree View stromový diagram objektů hierarchicky seřadí všechny použité komponenty (vizuální i nevizuální) některé komponenty lze umístit do jiných (dědičnost) – např. label na panel základní komponenta je formulář typu TForm
Code editor editor kódu je textový editor zajišťuje přístup ke zdrojovému kódu nabízí –našeptávače, code completion, nápovědu, (automaticky nebo po stisku Ctrl+mezera) –šablony kódu, code templates Ctrl+J –další prostředky pro pokročilé: gutter (ladění, hledání chyb), project manager
Vlastnosti komponent Vlastnosti přístupné (v době návrhu aplikace) v nejběžnějších komponentách: –Align: zarovnání komponenty –Caption: titulek komponenty –Color: barva povrchu nebo pozadí –Cursor: určuje kurzor myši nad komponentou –Enabled: udává, zda je komponenta aktivní nebo nikoliv (je ale vždy viditelná) –Font: určuje typ písma
Vlastnosti komponent –Height: výška komponenty –Hint: řetězec pro plovoucí nápovědu –Left: vzdálenost levého horního rohu zleva –Name: jedinečné jméno komponenty –ShowHint: je povolena plovoucí nápověda? –Top: vzdálenost levého horního rohu zhora –Visible: udává, zda je komponenta viditelná –Width: šířka komponenty
24/04/ Události komponent Nejpoužívanější události –OnChange: dojde k ní při změně komponenty –OnClick: při klepnutím levým tlačítkem –OnDblClick: double-click –OnEnter: aktivování komponenty (přijme focus) –OnExit: komponenta ztrácí focus –OnKeyPress: při stisku klávesy –OnMouseDown: při stisku něj. tlačítka myši –OnMouseMove: při pohnutí myší nad komp. –OnMouseUp: uvolnění tlačítka myši nad komp.
Programování událostí píšeme v editoru kódu –po poklikání na komponentu nebo –po výběru události na kartě events šablona unity se vytvoří automaticky –název procedury, parametry –begin … end; případné lokální proměnné doplníme (do malého varu)
Konverzní funkce Pro převod mezi formáty IntToStr, StrToInt – mezi integer a string FloatToStr, StrToFloat – mezi real a string DateToStr, StrToDate – mezi date a string Obecná procedura val (s,cislo,i) prevede string s na cislo, i pozice chyby Příklady: x:=StrToInt(Edit1.text); Label1.Caption:=DateToStr(now);
Kreslení Kreslit lze pomocí vlastnosti Canvas s využitím Pen a Brush Canvas.MoveTo(X,Y) – počáteční bod Canvas.LineTo(X,Y) – koncový bod Canvas.Rectangle(xz, yz, xk, yk) Canvas.Ellipse(xz, yz, xk, yk) Canvas.Pen, Canvas.Brush canvas.Pen.Color:=ClRed; canvas.Pen.Width:=7; canvas.Rectangle(10,10,100,100);
Komponenty a jejich vlastnosti
Form – formulář BorderStyle – vzhled okraje okna BorderIcons – ikony v titulkovém pruhu Caption – titulek, v titulkovém pruhu Height, Width – výška a šířka vč. okrajů ClientHeight, ClientWidth – využitelná Font – výběr fontu (velikost, styl, barva…) Left, Top- souřadnice levého horního rohu Cursor – tvar kurzoru nad formulářem + +
Button - tlačítko Enabled – tlačítko je-není stisknutelné WordWrap – zalomení textu (true, false) Left, Top – umístění levého horního rohu Hint – nápověda (text nápovědy) ShowHint – zobrazit nápovědu (true,false) Nelze změnit barvu tlačítka!
Label – textový popisek Alignment – zarovnání horizontální (vlevo, vpravo, na střed) Layout – zarovnání vertikální (nahoru, dolů, na střed) Autosize – automatické přizpůsobení velikosti danému textu (true, false) Transparent – průhledná barva
Edit – editační řádek VŽDY STRING !!! Text – obsah editu, zadaný text – ReadOnly – jen ke čtení PasswordChar – znak pro zobrazení namísto zadávaného textu (hesla…) CopyToClipboard – metoda, která zkopíruje obsah editu do schránky
UpDown
SpinEdit
Timer
Image
Shape