Formuláře

Zatím jsme všechny aplikace vytvářeli vždy v jednom formuláři, protože byly jednoduché, určitě si ale dovedete představit aplikaci, která bude potřebovat více "oken" (stránek, formulářů).

Přidat nový formulář do našich aplikací je možné v nabídce File ~ New ~ Form - Delphi for Win32 . K novému formuláři vytvoří Delphi automaticky novou jednotku - Unit (ale mohou být Unity i bez formulářů).
Přepínat mezi formuláři můžete na záložkách nebo na panelu nástrojů (podle označení na obrázku). Při větším počtu formulářů je lepší si je vhodně pojmenovat, v lekci ale ponechám předdefinované názvy Form, aby bylo stále jasné, kdy jde o formuláře.

Pokud z jednoho formuláře budeme otvírat jiný (tedy ho používat), je potřeba uvést do sekce implementation příkaz uses s názvem použité jednotky (Unit), takže na prvním formuláři by mohlo být (nekopírujte celé, jen vepište příkaz do správné sekce):
implementation
uses unit2;
{$R *.dfm}

Dalším úkolem je příslušný formulář zobrazit - ve třetí lekci v úloze na jedničku bylo navrženo využít vlastnosti visible, v takovém případě ale zůstávají všechny formuláře v paměti, jsou jen skryté. Vhodnější možností je otevřít formulář pomocí příkazů (metod formulářů):
form2.show; - otevře nový formulář tak, že lze pracovat i s ostatními formuláři (jako více třeba oken ve Wordu), takzvaný nemodální formulář
form2.showmodal; - otevře formulář, který je potřeba zavřít, aby bylo možné pracovat s jinými (jako například u dialogových oken, třeba pro výběr fontu), takzvaný modální formulář

Poslední nový příkaz (metoda formuláře), který v této lekci využijeme, slouží pro zavření formuláře:
form2.close; Zavření hlavního formuláře znamená ukončení aplikace.

Vytvářet nové formuláře je opravdu jednoduché, zvažte ale vždycky, zda je nový formulář opravdu zapotřebí, s dalšími formuláři vzrůstají nároky na hardware stroje. Následující projekt poslouží všem, kdo ztratili matematicko-fyzikální tabulky (tedy jenom stránku s objemy a povrchy kvádru a krychle :-) ).

Projekt Matematické vzorce

Úvodní formulář obsahuje jen titulní Label a tři tlačítka. Jako tlačítka lze samozřejmě použít standardní buttony, kdo chce přidat nějaké barvy může využít Labely, nebo podle lekce 7. tlačítka s obrázkem, nebo přímo obrázek jako v ukázce. Pro vložení obrázku už jste možná v první lekci použili komponentu TImage a její vlastnost Picture.
Pro umístění formuláře (okna aplikace) můžete využít také vlastnost formuláře Position a například její hodnotu poDesktopCenter.


Abychom mohli vyzkoušet funkčnost tlačítek, potřebujeme nové formuláře, takže v nabídce File - New - Form vytvoříme nový formulář, asi by měl mít stejnou polohu a stejné rozměry (Height, Width) jako první formulář. Obsah nového formuláře je opět jednoduchý - obrázek, Labely a tlačítko.

Nyní už můžeme přistoupit k programování, do formulářů je potřeba přidat příkaz uses, na prvním formuláři by mohlo být:
implementation
uses unit2,unit3;
{$R *.dfm}
Podobně je potřeba doplnit i druhý případně další formuláře.

Zbývají už jen tlačítka, na kterých použijeme výše vyložené příkazy pro otevření nebo zavření formuláře. Na prvním formuláři na tlačítku KVÁDR by mohlo být (vidíte, že to je procedura pro obrázek, protože jako tlačítka byly použity obrázky):

procedure TForm1.Image2Click(Sender: TObject);
begin
Form2.show;
end;


Další příkaz je určen pro tlačítko ZPĚT na druhém formuláři (s obrázkem kvádru):
procedure TForm3.Image2Click(Sender: TObject);
begin
close;
end;

Možná jste postřehli, že by se tato aplikace dala vytvořit jen s jedním formulářem, do kterého by se jen načítaly připravené obrázky i se vzorci, podobně jako už někteří z vás zkoušeli ve třetí lekci pomocí příkazu Image.Picture.LoadFromFile('obrázek.jpg');. Pokud bychom chtěli ale doplnit nějaké zkoušení ze vzorců, nejspíš už bychom nový formulář potřebovali.


Aplikace ukládej do složky s názvem lekce24 .

Úkoly:

Základní úloha:

Podle textu lekce a ukázky vytvoř projekt se třemi formuláři.


Úloha na plus:

Za každý další doplněný formulář se vzorci do základní úlohy můžeš získat plus.


Úlohy na jedničku:

Vytvoř výukový projekt na libovolné téma s výkladovými a zkoušecími funkcemi.