Komponenta ListBox


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

Komponenta ListBox slouží pro zobrazování seznamů řetězcových položek s možností uživatelského výběru požadované položky.

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í objektů, 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(ListBox.Items[0]);


Jazyk BONANZA: ShowMessage(ListBox.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: ListBox.Items[1]:='druhá položka';


Jazyk BONANZA: ListBox.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: ListBox.Items.Add('aaa');


Jazyk BONANZA: ListBox.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: ListBox.Items.Delete(2);


Jazyk BONANZA: ListBox.Items.Delete(2)

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


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


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

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


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


Jazyk BONANZA: ListBox.Items.SaveToFile("seznam.txt"); ListBox.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 celkového počtu musíte proto v cyklu jedničku odečíst:


Jazyk KLONDAIK: for x:= 0 to ListBox.Items.Count-1 do ListBox.Items[x] := UpperCase(ListBox.Items[x]);


Jazyk BONANZA: For x = 0 to ListBox.Items.Count-1 ListBox.Items(x) = UCase(ListBox.Items(x)) Next

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

Jak již bylo uvedeno, slouží komponenta ListBox pro uživatelský výběr položek ze seznamu. Možnost výběru pouze jedné položky, případně většího počtu položek se zadává ve vlastnosti MultiSelect. Podle nastavení vlastnosti ExtendedSelect lze provádět buď nezávislý výběr položek, případně sekvenční výběr dle rozsahu od až do.

Máte-li nastavenu možnost vícenásobného výběru ve vlastnosti MultiSelect, máte možnost z programu pomocí vlastnosti Selected kontrolovat, zda je určitá položka seznamu vybrána:


Jazyk KLONDAIK: if ListBox.Selected[1] then Memo.Lines.Add(ListBox.Items[1]);


Jazyk BONANZA: If ListBox.Selected(1) then Memo.Lines.Add(ListBox.Items(1)) End If

Komponenta obsahuje běžné události dovolující například reagovat na zaměření objektu, stisk klávesy nebo myši a podobně.


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