Komponenta ComboBox


Přehled vlastností, metod a událostí objektu:
--------------------------------------------------------------
Color (RW)           Ctl3D (RW)           Cursor (RW)
DropDownCount (RW)   Enabled (RW)         Font (RW)
Height (RW)          HelpContext (RW)     Hint (RW)
ItemHeight (RW)      ItemIndex (RW)       Items (RW)
Left (RW)            MaxLength (RW)       Name (R)
ParentColor (RW)     ParentCtl3D (RW)     ParentFont (RW)
ParentShowHint (RW)  PopupMenu (RW)       SelLength (*RW)
SelStart (*RW)       SelText (*RW)        ShowHint (RW)
Sorted (RW)          Style (RW)           TabOrder (RW)
TabStop (RW)         Text (RW)            Top (RW)
Visible (RW)         Width (RW)           
--------------------------------------------------------------
Clear
--------------------------------------------------------------
OnChange             OnClick              OnDblClick
OnEnter              OnExit               OnKeyDown
OnKeyPress           OnKeyUp              
--------------------------------------------------------------
Legenda: * -> pouze z programu, R -> lze číst, W -> lze zadat

Komponenta ComboBox kombinuje editační pole spolu se seznamem řetězců, který slouží pro výběr jedné z předvolených hodnot. Seznam řetězců se přitom většinou zobrazuje automaticky pouze při požadavku na změnu obsahu editačního pole objektu ComboBox.

Objekt ComboBox může být zobrazován ve třech variantách závislých na nastavení vlastnosti Style. Standardní zobrazení je, že se zobrazuje pouze editační okno s jednou vybranou položkou. Tu lze dle nastavení buď editovat, případně je editace zakázána. Další možností je zobrazovat seznam hodnot stále.

Seznam položek pro uživatelský výběr 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(ComboBox.Items[0]);


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


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


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


Jazyk BONANZA: ComboBox.Items.Delete(2)

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


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


Jazyk BONANZA: ShowMessage(ComboBox.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: ComboBox.Items.SaveToFile('seznam.txt'); ComboBox.Items.LoadFromFile('seznam.txt');


Jazyk BONANZA: ComboBox.Items.SaveToFile("seznam.txt") ComboBox.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 ComboBox.Items.Count-1 do Memo.Lines.Add(ComboBox.Items[x]);


Jazyk BONANZA: For x = 0 to ComboBox.Items.Count-1 Memo.Lines.Add(ComboBox.Items(x)) Next

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


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