Delphi - Webnode

Download Report

Transcript Delphi - Webnode

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
– popis formuláře
– unita
– nastavení překladače
– ikona projektu
– spustitelný soubor
– přeložená unita
*.dpr
*.dfm
*.pas
*.dof
*.res
*.exe
*.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
• form
• edit
• label
• button
• memo
základ projektu
vstup i výstup jednořádkového textu
Edit1.Text
popisek, Label1.Caption
tlačítko, provedení akce (události)
ví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, listbox rozbalovací 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
(jeho změna se musí projevit při všech
použitích 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
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.
08/04/2015
15
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 varu uvnitř těla konkrétní procedury)
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
• Val(s,a,c)
– převede string na cislo
Val (string,cislo,pozice chyby)
c = 0 – převod bez chyby, c > 0 – na pozici c je chyba
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
•
•
•
•
•
•
•
•
Caption – popisek
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)
Width, Height – šířka a výška tlačítka
Visible – viditelné (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 – vstupní i
výstupní, pro čísla je nezbytná KONVERZE
• 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 (Win32)
•
•
•
•
Associate – propojení s prvkem
Position – aktuální hodnota
Min, Max – rozsah hodnot
Increment – přírůstek
• ArrowKeys – šipkové klávesy (ano/ne)
• Orientation – vertikálně, horizontálně
• Thousands – oddělení tisíců
SpinEdit (Samples)
• Value – hodnota (celé číslo)
• Increment – přírůstek
• MaxValue, MinValue – minimální a
maximální hodnota
Timer (Systém) - časovač
• Interval – milisekundy
• Enabled – zapíná a vypíná časovač
Image (Additional)
• Picture – jméno obr. nebo cesta k němu
• Autosize – rámeček se přizpůsobí
(ano/ne)
• Stretch – obrázek se přizpůsobí (ano/ne)
LoadFromFile, SaveToFile
Image1.Picture.LoadFromFile(´H:\vlk.jpg´)
Image1.Picture.LoadFromFile(Edit1.Text)
Animace obrázku (1)
• Button, image (obr1.bmp), globální proměnná p (do
globální deklarace) – číslo načteného obrázku
• Procedure TForm1.Button1Click(Sender:Tobject);
begin
if p=1 then
begin p:=2;
Image1.Picture.LoadFromFile(´obr2.bmp´)
end
else begin p:=1;
Image1.Picture.LoadFromFile(´obr1.bmp´)
end;
end;
• Procedure TForm1.FormCreate…. p:=1;
Animace obrázku (2)
• 2 image, každý se svým obrázkem, umístit
přes sebe, u jednoho nastavit výchozí
Visible False, button
• Procedure TForm1.Button1Click(Sender:Tobject)
begin
Image1.Visible:=not(image1.Visible);
Image2.Visible:=not(image2.Visible);
end;
Shape automatický tvar (Additional)
• Shape – tvar (round – kulaté rohy)
• Brush – štětec – výplň – barva, styl (bsSolid)
• Pen – pero – čára tvaru
Bevel rámeček (Additional)
• Shape – tvar – celý nebo 1 strana
• Style
BitButton – tlačítko s obrázkem (Additional)
•
•
•
•
•
Kind – druh tlačítka
Glyph – název obrázku
Layout – umístění
Spacing – vzdálenost obr. od textu v bodech
Style
- styl tlačítka
InputBox (funkce) – jednořádkový vstup
Funkce, kterou voláme z programu, přiřadíme proměnné
typu string.
Funcion InputBox(const Acaption, Aprompt,
Adefault:string):string;
• Acaption – titulek dialogového okna
• Aprompt – titulek editačního pole
• Adefault – přednastavená hodnota v editačním poli
prijmeni:=InputBox(´identifikace´,´zadejte svoje příjmení´,´Nováková´);
MaskEdit (Additional)
• omezení vstupního textu
• EditMask – předdefinovaná nebo vlastní maska
(povinné: L písmeno, A písmeno nebo číslice, 0
číslice, C znak;
nepovinné: l písmeno, a písmeno nebo číslice, 9
číslice,c znak),
# číslice nebo + -, _ mezera
• Text – obsah komponenty
• EditText – text formátovaný aplikací masky
• IsMasked – maska nastavena (ano/ne)
Memo (Standard)
•
•
•
•
•
•
víceřádkové textové okno
výstupní obrazovka – více řádků typu string (pole textových řádků)
WordWrap – zalamování řádků dle šířky okna Memo (true/false)
ScrollBars – nastavení posuvníků
Text – obsah Mema (vlastní text)
Lines – řádky – obsah Mema (Add – přidá řádek na konec, Delete – vymaže
řádek, Insert – vloží řádek na aktuální pozici)
• ReadOnly – lze/nelze měnit obsah Mema
• Clear – vymaže obsah Mema (ClearSelection – vymaže výběr)
• CopyToClipboard – zkopíruje výběr do schránky (Cut – vyjme, PasteFrom…
- vloží obsah schránky)
• SelectAll – označí celý obsah Mema (SelText – obsahuje vybraný text,
SelStart – pozice počátku výběru, SelLength – délka výběru)
• Modified – změněn obsah Mema (true/false)
• LoadFromFile – načte obsah textového souboru, SaveToFile – uloží obsah
Mema do zadaného souboru
• Count – počet řádků Mema
Př. Memo1.Lines.Add(´Ahoj´)
Panel, groupbox, RadioGroup
(Standard)
• seskupování komponent do celku (panel je pro
komponenty do něj vložené „rodičem“)
Checkbox (zatržítko) – Caption, Checked
(true/false)
RadioButton (přepínač) – vkládá se do speciální
skupiny pomocí RadioGroup (Items – obsah
skupiny přepínačů, každý na somostatném
řádku, ItemIndex – pořadí zvoleného přepínače
– první=0, Columns – počet sloupců)
• využívají se často pro příkaz CASE
ScrollBar (Standard) - rolovací lišta
•
•
•
•
Kind – orientace horizontální, vertikální
Min, Max – nejmenší a největší hodnota
Position – pozice jezdce
SmallChange – o kolik se posune jezdec
při stisku koncových šipek
• LargeChange - o kolik se posune jezdec
při kliknutí na pruh ScrollBaru
Seznamy – ListBox, ComboBox
(Standard)
• posloupnost hodnot podobného typu, umožňuje výběr
jedné nebo více položek
ListBox
– Items – jednotlivé položky (Strings – přístup k
jednotlivým řádkům)
- ItemIndex – index položky, první=0, nevybráno nic = -1
- Columns – počet sloupců seznamu
- Multiselect – lze/nelze vybrat najednou více položek
- SelCount – počet najednou vybraných položek
Selected – byla/nebyla vybrána položka
Sorted – položky budou/nebudou setříděny (seřazeny)
ComboBox – výběr jediné položky ze
seznamu
- vlastnosti podobné jako u ListBoxu, navíc
vlastnost Style – ovlivňuje vzhled a
chování prvku
Menu – hlavní a kontextové
• komponenta MainMenu (Standard) – nevizuální
– poklikání = Menu Designer
– Caption– název položky
– Create Submenu – podmenu u položky (z kontextové nabídky)
• komponenta PopUp Menu = kontextové menu
– vytvořit tolikrát, kolika objektům je chceme přiřadit
– přiřazení k objektu – vlastnost PopupMenu
Dialogy
• nevizuální, umožňují volání připravených dialogových
oken
• okno končí volbou OK nebo Cancel
• dialog spouští funkce Execute, má hodnotu true, pokud
uživatel potvrdil OK, false, pokud uživatel stiskl Cancel
• OpenDialog – výběr souboru do FileName
• SaveDialog – uložení souboru z FileName
• OpenPictureDialog, SavePictureDialog – výběr a uložení
– pro soubory typu bmp, ico
• FontDialog – zvolený Font
• ColorDialog – zvolená barva
Procedury, funkce a parametry
ShowMessage – vlastní zpráva
- procedura ShowMessage('text')
- vložíme ji do tlačítka s popiskem Klikni...
Sender – parametr – lze přetypovat
- změníme jeho obecnou hodnotu z TObject
na konkrétní, např. TButton
Label1.Caption:=(Sender as TButton).Caption
Procedury, funkce a parametry
Val, StrToInt, IntToStr, StrToFloat,
FloatToStr,... - procedury
InputBox – funkce
Výjimky
• k ošetření chybových stavů
• try...except...end;...
s:string
begin
s:=InputBox(´načtení souboru´,´Jméno souboru: ´,´´);
try
Memo1.Lines.LoadFromFile(s);
except
Showmessage(´Soubor ´+s+´ neexistuje!´);
end;
end;
a podobně pro Memo1.Lines.SaveToFile(s);
Postup tvorby programu
• rozepsat si zadání:
– algoritmus
– potřebné komponenty
• na formulář nachystat komponenty a
pojmenovat je
• přiřadit komponentám vlastnosti
• přiřadit komponentám tělo procedur
(„naprogramovat je“)
• uložit program
• spustit program a odladit ho (uložit funkční verzi)