Dialógy sú v prostredí Lazarus komponenty, ktoré dovoľujú užívateľovi zadať názov súboru, font, farbu a pod. Všetky sa nachádzajú na palete Dialogs.
Na začiatok je tu ukážka jedného z dialógov, konkrétne OpenDialog:
Pokúsime sa vytvoriť maximálne jednoduchý textový editor. Na formulár vložíme komponent OpenDialog a nazveme ho dlgOtvor. Keďže všetky dialógy sú nevizuálne komponenty, počas návrhu formulára vidíme miesto nich iba malú ikonu. Po spustení aplikácie nevidíme ani ju. Nevizuálnym komponentom môžeme upravovať vlastnosti a udalosti bežným spôsobom.
Na formulár dáme ešte Memo (memText) a SaveDialog (dlgUloz). Na ovládanie poslúžia tlačidlá btnOtvor a btnUloz.
Konkrétny dialóg otvoríme jeho metódou Execute. Tá vráti true
, ak užívateľ dialóg potvrdil (napr. stlačením OK) a false
, ak ho užívateľ odmietol (napr. tlačidlom Zrušiť).
procedure TfrmHlavny.btnOtvorClick (Sender: TObject); begin if dlgOtvor.Execute then memText.Lines.LoadFromFile(dlgOtvor.FileName); end;
Po potvrdení sa názov súboru uložil do vlastnosti FileName daného dialógu. Samotný dialóg však žiaden súbor neotvára ani neukladá - to sme museli urobiť sami - metódou LoadFromFile vlastnosti Lines daného Mema.
Podobne vyzerá aj kód pre uloženie textu, len miesto OpenDialogu použijeme SaveDialog a ukladanie prebehne cez SaveToFile.
procedure TfrmHlavny.btnUlozClick (Sender: TObject); begin if dlgUloz.Execute then memText.Lines.SaveToFile(dlgUloz.FileName); end;
Ručne sme zapísali iba štyri riadky textu a jednoduchý textový editor je na svete. Môžete mu pridať ďalšie možnosti - to nechám na vás.
Na výber adresára nám poslúži SelectDirectoryDialog. Užívateľom vybraný priečinok bude uložený vo vlastnosti FileName.
ColorDialog umožňuje vybrať farbu; tá bude uložená ako vlastnosť Color daného dialógu.
if dlgFarba.Execute then memText.Font.Color := dlgFarba.Color;
FontDialog slúži na výber štýlu písma. Font typu TFont môžeme používať ako celok alebo len jeho jednotlivé vlastnosti:
if dlgPismo.Execute then memText.Font.Size := dlgPismo.Font.Size;
Dialógy FindDialog a ReplaceDialog môžeme využiť na zadanie textov, ktoré treba nájsť / nahradiť. Pripomínam, že sú to len dialógy a sami o sebe nič nehľadajú.
OpenPictureDialog a SavePictureDialog fungujú podobne ako Open/SaveDialog. CalendarDialog uloží dátum do vlastnosti Date. CalculatorDialog umožní užívateľovi vypočítať číslo, ktoré bude uložené ako vlastnosť Value.
PrinterSetupDialog umožní nastaviť tlačiareň, PageSetupDialog vzhľad stránky. Tieto dva dialógy sú užitočné už samotným spustením - naozaj nastavia parametre tlačiarne. PrintDialog však opäť slúži len na zadanie hodnôt, nie na samotnú tlač.