Komponenta DataComboBox


P°ehled vlastnostφ, metod a udßlostφ objektu:
--------------------------------------------------------------
Color (RW)           Ctl3D (RW)           Cursor (RW)
DataField (RW)       DataSource (RW)      DropDownCount (RW)
Enabled (RW)         Font (RW)            Height (RW)
HelpContext (RW)     Hint (RW)            ItemHeight (RW)
ItemIndex (*RW)      Items (RW)           Left (RW)
Name (R)             ParentColor (RW)     ParentCtl3D (RW)
ParentFont (RW)      ParentShowHint (RW)  PopupMenu (RW)
ReadOnly (RW)        SelLength (*RW)      SelStart (*RW)
SelText (*RW)        ShowHint (RW)        Sorted (RW)
Style (RW)           TabOrder (RW)        TabStop (RW)
Tag (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 DataComboBox mß podobnou funkci jako komponenta DataListBox. M∙₧e tedy slou₧it jako Φφselnφk pro zadßvßnφ p°edvolen²ch hodnot. Mimo v²b∞ru hodnoty ze seznamu dovoluje takΘ zßpis novΘ hodnoty. Komponentu p°edstavuje ComboBox, to je kombinace ListBoxu a komponenty DataEdit. P°i prochßzenφ databßzφ zobrazuje objekt DataComboBox v₧dy hodnotu p°φsluÜnΘ polo₧ky databßze a to i v p°φpad∞, ₧e nenφ shodnß s ₧ßdnou z p°eddefinovan²ch polo₧ek zadan²ch ve vlastnosti Items.

P°edvolenΘ hodnoty mohou b²t zadßny p°i nßvrhu aplikace, p°φpadn∞ je mo₧nΘ je zadat z programu p°i vytvß°enφ formulß°e, p°φpadn∞ m∙₧e b²t seznam hodnot dopl≥ovßn kdykoliv z programu.

Zdroj p°ipojen²ch dat je uveden ve vlastnosti DataSource. Udßvß se zdroj p°ipojenΘ pod°φzenΘ databßze, ze kterΘ se zobrazuje databßzovß polo₧ka. Pod°φzenß polo₧ka databßze se zadßvß ve vlastnosti DataField.

Aktußlnφ zobrazovan² text obsa₧en² v objektu (p°evzat² z databßze) je dostupn² ve vlastnosti text. Zm∞nou vlastnosti vÜak nedosßhnete zm∞ny obsahu pod°φzenΘ databßzovΘ polo₧ky.

Zm∞nou hodnoty obsa₧enΘ v objektu DataComboBox nedojde automaticky k ulo₧enφ zadanΘ hodnoty do databßze. K tomu je nutnΘ bu∩ kliknout na tlaΦφtko Post objektu DataNavigator, p°φpadn∞ zm∞nit pozici v databßzi p°echodem na jin² zßznam. NedoporuΦuje se pou₧φvat volßnφ metody Post u udßlosti OnChange, proto₧e m∙₧e dojφt ke vzßjemnΘmu ovliv≥ovßnφ stav∙ komponent na formulß°i. Mφsto toho lze pou₧φt volßnφ metody Post v udßlosti OnExit, to je p°i zm∞n∞ zam∞°enφ objektu DataComboBox.

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(DataComboBox.Items[0]);


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


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


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


Jazyk BONANZA: DataComboBox.Items.Delete(2)

Pot°ebujete-li v seznamu vyhledat index polo₧ky se zadan²m obsahem, pou₧ijte funkci IndexOf:

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


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


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


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

Pokud pot°ebujete seznam se°adit podle abecedy, pou₧ijte vlastnost Sorted. Pro kompletnφ v²maz seznamu pou₧ijte metodu Clear.

Vlastnost Style objektu DataComboBox umo₧≥uje zadat formßt zobrazenφ objektu na formulß°i, to je zda je seznam rozbalen trvale, p°φpadn∞ pouze v p°φpad∞ v²b∞ru novΘ hodnoty.


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