Komponenta CheckListBox


Přehled vlastností, metod a událostí objektu:
--------------------------------------------------------------
Align (RW)           AllowGrayed (RW)     BorderStyle (RW)
Checked (*)          Color (RW)           Columns (RW)
Ctl3D (RW)           Cursor (RW)          Enabled (RW)
Font (RW)            Height (RW)          HelpContext (RW)
Hint (RW)            IntegralHeight (RW)  ItemHeight (RW)
ItemIndex (*RW)      Items (RW)           Left (RW)
Name (R)             ParentColor (RW)     ParentCtl3D (RW)
ParentFont (RW)      ParentShowHint (RW)  PopupMenu (RW)
ShowHint (RW)        Sorted (RW)          State (*RW)
Style (RW)           TabOrder (RW)        TabStop (RW)
TabWidth (RW)        Tag (RW)             Top (RW)
Visible (RW)         Width (RW)           
--------------------------------------------------------------
Clear                SetFocus             
--------------------------------------------------------------
OnClick              OnClickCheck         OnDblClick
OnEnter              OnExit               OnKeyDown
OnKeyPress           OnKeyUp              OnMouseDown
OnMouseMove          OnMouseUp            
--------------------------------------------------------------
Legenda: * -> pouze z programu, R -> lze číst, W -> lze zadat

Komponenta CheckListBox, jak již její název napovídá slučuje v sobě možnosti komponent CheckBox a ListBox. Slouží proto pro sestavení rozsáhlých mnohonásobných seznamů s možností připojení zaškrtávacího boxu. Umožňuje proto snadný uživatelský výběr jednotlivých položek ze seznamu.

Seznam položek je uložen ve vlastnosti Items, kterou představuje proměnná typu StrArray. Uvedený typ proměnné má své vlastní metody pro práci s obsaženým seznamem řetězců. Pro zadání počátečního obsahu můžete použít speciální editor přístupný z okna Nastavení objektu, který se aktivuje kliknutím na ikonu se třemi tečkami vpravo od vlastnosti Items.

Jednotlivé položky jsou v seznamu řetězců přístupné svým indexem, to je pořadovým číslem. Položky jsou číslovány od nuly. První položka v pořadí má proto index nula, pátá položka má index 4. Pokud potřebujete zjistit obsah položky, musíte zadat její pořadový index. Obsah první položky proto zobrazíte


Jazyk KLONDAIK: ShowMessage(CheckListBox.Items[0]);


Jazyk BONANZA: ShowMessage(CheckListBox.Items(0))

Podobným způsobem můžete změnit obsah položky, kdy opět zadáváte index položky a nový obsah. Pro druhou položku v pořadí proto zadáte:


Jazyk KLONDAIK: CheckListBox.Items[1]:='druhá položka';


Jazyk BONANZA: CheckListBox.Items(1) = "druhá položka"

Novou položku do seznamu zadáte z aplikace použitím metody Add následujícím způsobem:

Jazyk KLONDAIK: CheckListBox.Items.Add('aaa');


Jazyk BONANZA: CheckListBox.Items.Add("aaa")

Pokud potřebujete některou položku ze seznamu zrušit, použijte volání metody Delete následujícím způsobem:


Jazyk KLONDAIK: CheckListBox.Items.Delete(2);


Jazyk BONANZA: CheckListBox.Items.Delete(2)

Potřebujete-li v seznamu vyhledat index položky se zadaným obsahem, použijte funkci IndexOf:


Jazyk KLONDAIK: ShowMessage(CheckListBox.Items.IndexOf('aaa'));


Jazyk BONANZA: ShowMessage(CheckListBox.Items.IndexOf("aaa"))

Obsah seznamu můžete uložit na disk do textového souboru, případně načít textový soubor do seznamu metodami SaveToFile a LoadFromFile:


Jazyk KLONDAIK: CheckListBox.Items.SaveToFile('seznam.txt'); CheckListBox.Items.LoadFromFile('seznam.txt');


Jazyk BONANZA: CheckListBox.Items.SaveToFile("seznam.txt") CheckListBox.Items.LoadFromFile("seznam.txt")

Potřebujete-li projít celý seznam a provést s každou položkou seznamu nějakou akci, použijte vlastnost Items.Count. Musíte přitom počítat s tím, že se seznam čísluje od nuly, počet položek seznamu je však uváděn od jedničky. Od seznamu musíte proto v cyklu jedničku odečíst:


Jazyk KLONDAIK: for x:= 0 to CheckListBox.Items.Count-1 do CheckListBox.Checked[x] := False;


Jazyk BONANZA: For x = 0 to CheckListBox.Items.Count-1 CheckListBox.Checked(x) = False Next

Jak již bylo uvedeno, hlavní výhoda komponenty CheckListBox je sloučení seznamu se zaškrtávacím boxem. Každá položka má samostatný zaškrtávací box přístupný vlastností Checked, která je dostupná pouze z programu. Podle nastavení vlastnosti AllowGrayed máte možnost zadávat pouze hodnoty True a False, případně i třetí tzv. neznámou hodnotu. Tu máte možnost zjistit pouze testováním vlastnosti State, například následujícím způsobem:


Jazyk KLONDAIK: if CheckListBox.State[0] = cbGrayed then Edit.Text := 'Odpověď nebyla zadána';


Jazyk BONANZA: If CheckListBox.State(0) = cbGrayed then Edit.Text = "Odpověď nebyla zadána" End If

Pokud potřebujete seznam seřadit podle abecedy, použijte vlastnost Sorted. Pro kompletní výmaz seznamu použijte metodu Clear.

Komponenta obsahuje běžné události dovolující například reagovat na zaměření objektu, stisk klávesy nebo myši a podobně. Nejdůležitější událostí je ale událost OnClickCheck, která nastane v okamžiku změny nastavení zaškrtávacího tlačítka seznamu. Vybranou položku seznamu zjistíte v události ItemIndex.


OZOGAN, 1 Máje 97, 460 01 Liberec
tel.,fax: (048) 52 28 338, e-mail: info@ozogan.cz