Dnes sa naučíme používať niektoré základné možnosti vizuálneho programovania, ktoré nám Lazarus ponúka. Všetky nasledujúce komponenty sa nachádzajú na palete Standard.
Takmer každý program má svoje hlavné menu. V našom prípade pre jeho tvorbu použijeme komponent MainMenu. Umiestnime ho na formulár a 2x naňho klikneme. Otvorí sa Menu Editor s predvolenou položkou New Item1. V jej kontextovom menu môžeme pridávať a odoberať položky (Insert New Item a Delete Item), posúvať ich (Move Up/Down) a vytvárať podmenu (Create Submenu). V Object Inspectore je možné meniť názvy (Name) a popisy (Caption) jednotlivých položiek. Po dvojitom kliknutí na vybranú položku sa vytvorí jej udalosť OnClick.
Podobným spôsobom môžeme vytvoriť aj kontextové menu - na formulár dáme komponent PopupMenu. Ak ho chcete po jeho vytvorení priradiť napr. editačnému poľu Edit1, zmeňte vlastnosť nazvanú PopupMenu komponentu Edit1.
Ďalší používaný komponent sa nazýva Button. Jeho vlastnosť Caption určuje nápis na ňom. Tradičným dvojklikom určíme, čo sa bude vykonávať pri jeho stlačení.
Ak chceme na formulár vložiť jednoduchý text, využijeme komponent Label. Vlastnosť Caption, ako vždy, určuje tento nápis.
Už spomínaný Edit má dôležité vlastnosti Text (jeho aktuálny textový obsah), CharCase (prevod textu na veľké alebo malé písmená) a ReadOnly (logická hodnota určujúca, či je políčko určené len na čítanie).
Komponent Memo je podobný Edit-u, ale môžeme doňho napísať viac riadkov textu. Jeho vlastnosť Lines je typu TStrings
a obsahuje text jednotlivých riadkov. S týmto typom sa dá pracovať jednak ako s poľom:
{zobrazi text prveho riadoku Mema} ShowMessage(memPrveMemo.Lines[0]);
..a zároveň sa dá použiť aj jeho vlastnosť Text, ktorá je typu string
, teda s ňou môžeme bežným spôsobom pracovať:
{ukaze cely text Mema} ShowMessage(memPrveMemo.Lines.Text);
Počet riadkov zistíme pomocou vlastnosti Count (podradenej Lines).
Skúsme nahradiť posledný riadok napísaného textu slovom „Ahoj“. Na formulár frmMoj vložíme Memo s názvom memPrveMemo a tlačidlo btnTlac.
procedure TfrmMoj.btnTlacClick(Sender: TObject); var PocetRiadkov: integer; begin PocetRiadkov := memPrveMemo.Lines.Count; {prepise posledny riadok slovom 'Ahoj'} memPrveMemo.Lines[PocetRiadkov-1] := 'Ahoj'; end;
Prečo používame index [PocetRiadkov-1]
a nie len [PocetRiadkov]
? Pretože prvý riadok textu má index 0 a vlastnosť Count vráti pri jednom zapísanom riadku hodnotu 1.
Zaujímavým, no nie veľmi používaným komponentom je ToggleBox. Toto tlačidlo môže byť buď v stave „vybrané“ - vtedy má jeho vlastnosť Checked hodnotu true
alebo naopak „nevybrané“ - false
. Vybrané je vtedy, ak vyzerá byť vtlačené dovnútra.
Kockaté políčko CheckBox, známe aj z webových stránok, môže byť zaškrtnuté (hodnota vlastnosti Checked je true
) alebo prázdne (false
). Caption určuje nápis vedľa políčka.
Ak nastavíme AllowGrayed na true
, pole bude môcť byť aj šedé. Vtedy zistíme jeho stav vlastnosťou State.
Viac CheckBoxov môžeme združiť do jedného komponentu CheckGroup. Ten najprv umiestníme na formulár, necháme ho aktívny (alebo doňho klikneme, ak nie je). Potom na palete vyberieme CheckBox a klikneme späť do CheckGroupu na formulári. Zaškrtávacie políčko bude akoby v ňom.
RadioButton sa od CheckBoxu líši tým, že z jednej skupiny môže byť vybrané len jedno z nich a ich vzhľad je kruhový. Použitie vlastnosti Checked je rovnaké.
Častejšie ako RadioButton samotný sa používa RadioGroup - skupina políčok. Pracuje sa s ním podobne ako s CheckGroupom popísanom v predchádzajúcom odstavci.
V Lazaruse je ScrollBar jednou z možností výberu číselných hodnôt určitého rozsahu. Čím je „jazdec“ viac vpravo, tým je hodnota väčšia.
Minimálnu možnú hodnotu určíme vlastnosťou Min, maximálnu cez Max. Position určuje aktuálnu pozíciu posuvného „jazdca“.
Vytvorme si zaujímavý príklad. Hýbaním ScrollBaru budeme určovať výšku okna. Tu je postup: Formulár pomenujte frmMoj, v Object Inspectore zadajte do vlastnosti Height hodnotu 100. Umiestnime naňho ScrollBar s názvom scbPos a nastavte hodnotu Min na 100, Max na 500. Dvakrát kliknite na vytvorený ScrollBar a zapíšte nasledujúci kód:
procedure TfrmMoj.scbPosChange(Sender: TObject); begin frmMoj.Height := scbPos.Position; end;
Pri každom pohnutí ScrollBarom sa výška formulára ihneď nastaví na hodnotu scbPos.Position
.
Vidíte, že je to maximálne jednoduché - stačilo párkrát kliknúť a napísať len jeden riadok zdrojového kódu, zvyšok zariadil Lazarus za nás.