Stránky neboli dlhú dobu aktualizované. Môžu obsahovať nepresné alebo neaktuálne informácie.
Hľadanie
Rozšírené vyhľadávanie
TOP 7 - stránky
Napaľovacie programy - 108 571x
Free Pascal - Úvod - 66 114x
Lazarus - Kreslenie - 47 641x
Free Pascal - Začiatky - 44 953x
Free Pascal - Podmienky - 37 276x
Free Pascal - Cykly - 36 517x
Internetové prehliadače - 36 438x
Nové v diskusii
Free Pascal - Cykly - štvrtok 31.3.
Lazarus - Začíname - piatok 25.3.
Anketa - streda 2.3.
Navigácia: Programovanie > Lazarus - Zoznamy

Lazarus - Zoznamy

Pod pojmom zoznamy môžeme v programe Lazarus rozumieť napríklad tieto komponenty: ListBox, ComboBox (paleta Standard), CheckListBox, ColorBox (Additional). Slúžia na výber konkrétneho prvku (resp. prvkov) z určitej množiny údajov.

ListBox

Jeho najdôležitejšou vlastnosťou je Items (zoznam položiek) typu TStrings. Tento typ sme spomínali už pri komponente Memo. Teraz ho však skúsime upraviť už v dobe návrhu.

V Object Inspectore kliknite na vlastnosť Items. Uvidíte tlačidlo s troma bodkami. Keď naňho kliknete, zjaví sa okno Strings Editor Dialog. Tam môžete napísať jednotlivé položky zoznamu - každú do jedného riadku. Na zoradenie sa dá použiť tlačidlo Sort. Všetko potvrdíte stlačením tlačidla OK.

Ako vidíte, hneď po potvrdení sa vami zadané hodnoty zjavili v ListBoxe na formulári. Rovnaké hodnoty sa objavia aj po spustení programu; zo zoznamu môžete momentálne vybrať jednu položku - skúste si to.

Index vybranej položky (prvá má index 0) sa zisťuje a nastavuje vlastnosťou ItemIndex. Tá nie je dostupná v Object Inspectore - môžeme ju meniť len počas behu programu (vďaka zdrojovému kódu, ktorý napíšeme). Hovorí sa tomu „runtime premenná“.

V prípade, že nastavíte vlastnosť MultiSelect na true, získate možnosť výberu viacerých položiek naraz (podržte kláves Ctrl a klikajte). Zistiť, či je prvok s daným indexom vybraný, sa dá vlastnosťou Selected[index], ktorá je typu boolean. SelCount zas vráti počet vybraných položiek. Uvediem príklad (MultiSelect je už nastavené na true):

procedure TfrmMoj.btnTlacClick(Sender: TObject);
var
 i: integer;
 s: string = '';
begin
 {postupne zistujeme, ci su polozky vybrane}
 for i := 0 to lbxZoznam.Items.Count-1 do
  {ak je polozka vybrana, pridame ju k retazcu}
  if lbxZoznam.Selected[i] then
   s := s+#13+lbxZoznam.Items[i];
 ShowMessage(s); // vypiseme hotovy retazec
end;  

Program má za úlohu zobraziť v dialógovom okienku názvy všetkých vybraných položiek zoznamu, oddelených novým riadkom (znak #13).

Lazarus - ListBox

ComboBox

Od ListBoxu sa líši tým, že nezobrazí hneď všetky položky - je „zbalený“. Navyše v ňom nemôžeme vybrať viac položiek naraz.

Ak nastavíme vlastnosť Style na csDropDown, budeme dokonca môcť vpisovať do ComboBoxu vlastný text, nenachádzajúci sa medzi položkami (Items). Naopak, hodnota csDropDownList nám umožní vyberať si len z definovaných položiek. Odporúčam vyskúšať (spustiť program raz s jedným, raz s druhým nastavením), uvidíte značný rozdiel.

CheckListBox

Komponent veľmi podobný LisBox-u. Jednotlivé položky však pri sebe majú zaškrtávacie políčka. Logická vlastnosť Checked[index] určuje, či je položka s daným indexom zaškrtnutá (true) alebo nie (false).

ColorBox

Obdoba ComboBoxu, avšak miesto textu si vyberáme jednu z ponúknutých farieb. Rôznorodosť farieb, z ktorých môžeme vyberať, určíme vlastnosťou Palette (hodnoty cpDefault, cpFull).

Vybraná farba je dostupná v runtime vlastnosti Selection typu TColor. Je to špeciálny typ premennej určený pre ukladanie farieb. Nasledujúci príklad stručne ukazuje možnosti práce s TColor.

procedure Farby;
var
 Farba: TColor;
begin
 Farba := $7FFFFFFF; // hexadecimalny zapis
 Farba := clWhite; // jednoducho biela
 Farba := clText; // farba textu, aku mame
                  // nastavenu vo Windows
 {pretypovanie farby na retazec}
 ShowMessage(ColorToString(Farba));
end;
Hodnotenie
1 2 3 4 5 (ako v škole)
Priemerná známka: 2,5
Diskusia k tejto stránke Príspevok na túto tému zatiaľ neexistuje. Môžete pridať prvý z nich!
Prejsť do diskusie»
2005-2012, Matúš Sulír, matus.sulir (zav) gmail bodka com. Gen.: 0,0312 s. Valid XHTML, CSS.