Serißl - 13. dφl
DalÜφ ovlßdacφ prvky

15. DalÜφ ovlßdacφ prvky
    15.1 TreeView
    15.2 ListView
    15.3 StatusBar
    15.4 ToolBar
    15.5 CoolBar


15. DalÜφ ovlßdacφ prvky

DneÜnφ dφl serißlu bude o n∞kter²ch ovlßdacφch prvcφch, o kter²ch jeÜt∞ nic nevφte (alespo≥ ne z tohoto serißlu), ale kterΘ se pou₧φvajφ ve spoust∞ aplikacφ ve Windows. VÜechny prvky, kterΘ jsou zde popsanΘ, nejsou standardn∞ za°azeny v panelu nßstroj∙, musφte je p°idat z menu Project -> Components, polo₧ka Microsoft Windows Common Controls.

15.1 TreeView

Prvek TreeView zobrazuje seznam polo₧ek v n∞jakΘ stromovΘ neboli hierarchickΘ struktu°e. Jak vypadß jeho pou₧itφ v praxi m∙₧ete vid∞t nap°. v Pr∙zkumnφkovi. Jeho levΘ okno je prvek TreeView.

Ka₧dß jeho polo₧ka je reprezentovßna objektem Node v kolekci Nodes. P°idßvßnφ, mazßnφ a p°φstup k jednotliv²m polo₧kßm je tedy logicky p°es tuto kolekci. P°idßvßnφ polo₧ky provßdφ metoda Add. NejjednoduÜÜφ p°idßnφ vypadß takto:

With TreeView1.Nodes
  .Add , , , "Prvnφ polo₧ka stromu"
  .Add , , , "Druhß polo₧ka stromu"
  .Add , , , "T°etφ polo₧ka stromu"
End With

Proto₧e je tento prvek pou₧φvßn hlavn∞ pro vytvo°enφ stromovΘ struktury a ne pouze jednoduchΘho seznamu jako v p°edchozφm p°φpad∞, musφte pou₧φt i ostatnφ parametry metody. Prvnφ parametr urΦuje klφΦ polo₧ky, ke kterΘ se bude ta kterou prßv∞ vytvß°φte n∞jak²m zp∙sobem vztahovat. Druh² urΦuje typ vztahu a t°etφ samotn² klφΦ polo₧ky. Typ∙ vztahu (relace) existuje p∞t. Prvnφ Φty°i, tvwFirst, tvwLast, tvwNext a tvwPrevious, urΦujφ, kam se p°idßvanß polo₧ka umφstφ, jestli jako prvnφ, poslednφ, dalÜφ (za zadanou) nebo p°edchozφ (p°ed zadanou). Poslednφ mo₧nost, tvwChild znamenß, ₧e vklßdanß polo₧ka je "dφt∞tem" zadanΘ a zobrazφ se p°i poklepßnφ na zadanou polo₧ku. P°esn∞ji to pochopφte na p°φkladu.

With TreeView1.Nodes
  .Add , , "x1", "Prvnφ polo₧ka stromu"
  .Add , , "x2", "Druhß polo₧ka stromu"

  'Vytvo°φ dv∞ polo₧ky, jejich₧ rodiΦ bude polo₧ka s klφΦem x1
  .Add "x1", tvwChild, "x3", "Prvnφ podpolo₧ka prvnφ polo₧ky"
  .Add "x1", tvwChild, "x4", "Druhß podpolo₧ka prvnφ polo₧ky"

  'Vytvo°φ polo₧ku, jejφ₧ rodiΦ bude polo₧ka s klφΦem x1, proto₧e
  'ji uklßdß jako prvnφ (tvwFirst), ale v zßvislosti na polo₧ce s klφΦem x3
  'kterß je zßvislß na x1
  .Add "x3", tvwFirst, "x5", "T°etφ podpolo₧ka prvnφ polo₧ky"
End With

Poklepete-li na prvnφ polo₧ku, vypadß v²sledek takto:

NaÜemu p°φkladu ale jeÜt∞ n∞co chybφ a to je klasick² vzhled tohoto prvku. Aby u₧ivatel lΘpe pochopil, co mß vlastn∞ s polo₧kami d∞lat, je dobrΘ zobrazit u ka₧dΘ, kterß lze rozbalit, na levΘ stran∞ k°φ₧ek. Toto nastavenφ se °φdφ dv∞mi vlastnostmi. Prvnφ je LineStyle a urΦuje, kde vÜude se budou zobrazovat Φßry. Pokud zadßte tvwTreeLines, budou se zobrazovat pouze Φßry mezi polo₧kami a jejφmi rodiΦovsk²mi polo₧kami. Zadßte-li tvwRootLines, zobrazφ se Φßry i mezi polo₧kami postaven²mi nejv²Üe, tzn. v ko°enu. Druhß vlastnost, Style, urΦuje, co vÜechno se zobrazφ. Zda pouze text, text a obrßzky, Φßry a text, plus/minus a text atd. R∙zn²ch kombinacφ je mo₧nΘ nastavit 8 (jde o kombinace zobrazenφ textu, obrßzk∙, Φar a znaku plus nebo mφnus). Tak nap°. kombinacφ nastavenφ LineStyle na tvwRootLines a Style na tvwTreelinesPlusMinusText lze dosßhnout tohoto efektu:

Nakonec, aby byl prvek kompletnφ, p°idßme ka₧dΘ polo₧ce n∞jak² obrßzek. Obrßzky musφ b²t v prvku ImageList. Jeho pou₧itφ je jednoduchΘ. Umφst∞te jej na formulß°, klikn∞te na vlastnost Custom, vyberte zßlo₧ku Images a pomocφ tlaΦφtka InsertPicture vlo₧te po₧adovanΘ obrßzky. Tento ImageList potom p°i°a∩te prvku TreeView tak, ₧e jeho nßzev zadßte do vlastnosti ImageList prvku TreeView (klikn∞te na TreeView, na polo₧ku Custom a zde naleznete vlastnost ImageList). P°i pridßvßnφ polo₧ek do TreeView potom zadßvßte obrßzky jako poslednφ dva parametry metody Add. Prvnφ je standardnφ obrßzek a druh² obrßzek, kter² se zobrazφ p°i vybrßnφ polo₧ky. Obrßzky se zadßvajφ bu∩ indexem (po°adovΘ Φφslo v prvku ImageList) nebo klφΦem (klφΦ obrßzku v prvku ImageList).

'Prvnφ dva prvky budou mφt prvnφ obrßzek ImageListu standardn∞ a druh² p°i vybrßnφ polo₧ky
'DalÜφ t°i polo₧ky budou mφt v₧dy druh² obrßzek ImageListu
With TreeView1.Nodes
  .Add , , "x1", "Prvnφ polo₧ka stromu", 1, 2
  .Add , , "x2", "Druhß polo₧ka stromu", 1, 2
  .Add "x1", tvwChild, "x3", "Prvnφ podpolo₧ka prvnφ polo₧ky", 2
  .Add "x1", tvwChild, "x4", "Druhß podpolo₧ka prvnφ polo₧ky", 2
  .Add "x3", tvwFirst, "x5", "T°etφ podpolo₧ka prvnφ polo₧ky", 2
End With

V²sledek potom vypadß takto:

Vymazßnφ urΦitΘ polo₧ky je velmi jednoduchΘ, provedete jej pomocφ metody Remove. Jako parametr zadßte bu∩ index polo₧ky, nebo, co₧ je urΦit∞ p°ehledn∞jÜφ, jejφ klφΦ. Nap°. smazßnφ polo₧ky "Prvnφ polo₧ka stromu" z p°edchozφho p°φkladu provedete takto:

TreeView1.Nodes.Remove "x1"

Pokud polo₧ka obsahuje n∞jakΘ dalÜφ (jako v naÜem p°φkladu), vyma₧ou se takΘ. Chcete-li smazat vÜechny polo₧ky, pou₧ijte metodu Clear.

Tento prvek mß samoz°ejm∞ spoustu dalÜφch mo₧nostφ, jak pracovat s polo₧kami, popis vÜech by byl pro nßÜ serißl moc obsßhl². Proto uvedeme pouze n∞kolik vlastnostφ, metod a udßlostφ, kter²ch byste si m∞li vÜimnout a podφvat se do nßpov∞dy, k Φemu p°esn∞ slou₧φ.

Vlastnosti: LabelEdit, HideSelection, Sorted, CheckBoxes, HotTracking, Scroll a SingleSel.

Metody: HitTest, StartLabelEdit

Udßlosti: Collapse, Expand, NodeClick a NodeCheck

Nakonec je t°eba jeÜt∞ jednou zmφnit objekt Node, pomocφ n∞j₧ m∙₧ete upravovat vlastnosti jednotliv²ch polo₧ek, nap°. vlastnost Bold pro tuΦn² text atd.

Zp∞t na obsah


15.2 ListView

Prvek ListView slou₧φ k zobrazenφ seznamu polo₧ek n∞kolika zp∙soby. M∙₧ete zobrazit jednoduch² seznam s obrßzky nebo bez, nebo polo₧ky i s jejφmi dalÜφmi vlastnostmi. Tento prvek je ve Windows 9x hojn∞ pou₧φvan². Kter² to je, zjistφte nap°. poklepßnφm na ikonu tento poΦφtaΦ. Okno, ve kterΘm jsou zobrazeny disky atd. je prvek ListView. Jak vypadajφ typy zobrazenφ zase zjistφte kliknutφm na menu Zobrazit a vybrßnφm jednΘ ze Φty° polo₧ek (VelkΘ ikony, MalΘ ikony, Seznam a Podrobnosti. Pou₧φvßnφ tohoto prvku je na prvnφ pohled velmi podobnΘ pou₧itφ prvku TreeView.

JednotlivΘ polo₧ky seznamu jsou reprezentovßny objektem ListItem v kolekci ListItems. P°idßnφ polo₧ky se provede metodou Add. Prvnφ parametr je index, kter² urΦuje pozici. Pokud jej nezadßte, p°idß se na konec seznamu. Druh² parametr je klφΦ polo₧ky. T°etφ je text polo₧ky. ╚tvrt² a pßt² parametr jsou stejn∞ jako u TreeView indexy nebo klφΦe obrßzk∙ z prvku ImageList. ╚tvrt² je velkß ikona a pßt² malß. Proto₧e se pou₧φvajφ malΘ i v∞tÜi ikony, je mo₧nΘ p°i°adit prvku dva ImageListy, jeden logicky pro malΘ ikony a druh² pro velkΘ (m∙₧e jφt o stejn² ImageList). P°i°azenφ se provßdφ kliknutφm na vlastnost Custom, vybrßnφm zßlo₧ky ImageList a zadßnφm nßzv∙ ImageList∙.

P°idßnφ t°φ polo₧ek m∙₧e vypadat t°eba takto:

With ListView1.ListItems
  .Add , "x1", "Prvnφ polo₧ka", 1, 2
  .Add , "x2", "Druhß polo₧ka", 1, 2
  'P°idßnφ polo₧ky na prvnφ mφsto
  .Add 1, "x3", "T°etφ polo₧ka", 1, 2
End With

Zp∙soby zobrazenφ polo₧ek se zadßvajφ vlastnostφ View. Mo₧nΘ hodnoty jsou lvwIcon, zobrazenφ s ikonami zadan²mi ve ΦtvrtΘm parametru (v∞tÜinou velk²mi 32*32), lvwSmallIcon, zobrazenφ s mal²mi ikonami (pßt² parametr, v∞tÜinou velikost 16*16), lvwList, polo₧ky zobrazenΘ pod sebou s mal²mi ikonami a lvwReport, polo₧ky zobrazenΘ i s dalÜφmi vlastnostmi. Nejd°φve si ukß₧eme, jak p°idat dalÜφ vlastnosti a potom jak jednotlivß zobrazenφ vypadajφ.

Nejprve musφte urΦit, kolik sloupc∙ bude zobrazeno. To provedete kliknutφm na vlastnost Custom a vybrßnφm zßlo₧ky ColumnHeaders. Kliknutφm na tlaΦφtko InsertColumn p°idßte jeden sloupec. Mimo jinΘ mu m∙₧ete zadat jeho text, zarovnßnφ textu ve sloupci a Üφ°ku sloupce. Pro nßÜ p°φklad vytvo°te t°i sloupce. Narozdφl od p°edchozφho p°φkladu p°idejte jeÜt∞ jeden ImageList. Jeden z nich napl≥te ikonami o velikosti 32*32 a druh² ikonami o velikosti 16*16. Prvnφ p°i°a∩te do vlastnosti Normal a druh² do SmallIcon (jak, u₧ vφte). K≤d pro napln∞nφ seznamu potom vypadß takto:

Dim lst As ListItem

With ListView1.ListItems
  Set lst = .Add(, "x1", "Prvnφ polo₧ka", 1, 1)
  lst.SubItems(1) = "Popis1"
  lst.SubItems(2) = "Popis2"

  Set lst = .Add(, "x2", "Druhß polo₧ka", 1, 1)
  lst.SubItems(1) = "Popis1"

  Set lst = .Add(1, "x3", "T°etφ polo₧ka", 1, 1)
  lst.SubItems(2) = "Popis2"
End With

JednotlivΘ zp∙soby zobrazenφ potom vypadajφ v zßvislosti na nastavenφ vlastnosti View takto:


lvwReport

lvwIcon

lvwSmallIcon

lvwList

Vymazßnφ polo₧ky se provßdφ volßnφm metody Remove bu∩ s indexem polo₧ky nebo s klφΦem. Chcete-li vymazat vÜechny polo₧ky narßz, pou₧ijte metodu Clear.

Stejn∞ jako u TreeView se s tφmto prvkem ji₧ rozlouΦφme, proto₧e mß tolik mo₧nostφ, ₧e by nebylo v silßch naÜeho serißlu vÜechny zde popsat. Proto op∞t ty nejd∙le₧it∞jÜφ, kterΘ si urΦit∞ najd∞te v nßpov∞d∞ a vyzkouÜejte.

Vlastnosti: AllowColumnReorder, Arrange, FullRowSelect, GridLines, HideSelection, HotTracking, HoverSelection, CheckBoxes, LabelEdit, LabelWrap, MultiSelect, PictureAlignment, Sorted a TextBackground.

Metody: FindItem, GetFirstVisible, HitTest a StartLabelEdit.

Udßlosti: ColumnClick, ItemCheck a ItemClick.

Zp∞t na obsah


15.3 StatusBar

StatusBar je prvek, kter² slou₧φ pro zobrazovßnφ nejr∙zn∞jÜφch stav∙ vaÜφ aplikace. Je zde dokonce mo₧nost pou₧φt p°eddefinovan²ch Φßstφ jako jsou hodiny, stav zßmk∙ na klßvesnici apod.

Stavov² °ßdek, jak lze nßzev tohoto prvku p°elo₧it, m∙₧e v zßvislosti na nastavenφ vlastnosti Style fungovat dv∞ma zp∙soby. Nastavφte-li ji na 1 - sbrSimple, StatusBar bude mφt pouze jednu Φßst, kde se bude zobrazovat pouze text, kter² zadßte do vlastnosti SimpleText. To je vÜe, co m∙₧ete p°i tomto nastavenφ s prvkem d∞lat.

Druhou mo₧nostφ nastavenφ vlastnosti Style je 0 - sbrNormal. V tomto p°φpad∞ je Ükßla mo₧nostφ, kterΘ StatusBar nabφzφ mnohem ÜirÜφ. Umo₧nuje posklßdat stavov² °ßdek z n∞kolika Φßstφ (panel∙). Je zde mo₧nΘ pou₧φt panely s Φasem, datumem a r∙znΘ indikßtory klßvesnice. Dßle je mo₧nΘ nastavovat i odliÜn² vzhled jednotliv²ch panel∙.

Bude-li mφt stavov² °ßdek konstantnφ vzhled, je nejjednoduÜÜφ jeho parametry nastavit pomocφ strßnek vlastnostφ p°i nßvrhu. Klepn∞te do okna Properties, a vn∞m poklepejte na vlastnost (Custom). Zobrazφ se vßm okno se t°emi zßlo₧kami. V prvnφ zßlo₧ce General nastavφte obecnΘ vlastnosi StatusBaru. Ve druhΘ zßlo₧ce Panels pak vytvß°φte a nastavujete jednotlivΘ panely. Pro vlo₧enφ novΘho panelu klepn∞te na tlaΦφtko Insert Panel a pro odstran∞nφ panelu klepn∞te na tlaΦφtko Remove Panel. Pro pohyb po panelech pou₧φvejte polφΦka Index a tlaΦφtek s Üipkama, kterΘ le₧φ v pravo od n∞j. V nßsledujφcφ tabulce naleznete popis jednotliv²ch polφΦek (vlastnostφ), kterΘ lze u panelu nastavit.

Nßzev polφΦka (vlastnosti) Popis
Text Text kter² bude v panelu zobrazen. Jestli₧e je vlastnost Style nastavena na hodnotu jinou ne₧ je sbrText, je tato vlastnost ignorovßna.
ToolTipText Text, kter² bude zobrazen v bublin∞, zastavφte-li se kurzorem myÜi nad p°φsluÜn²m panelem.
Alignment UrΦuje zp∙sob zarovnßnφ textu v panelu (na st°ed, do leva, do prava)
Style Zde nastavφme typ obsahu panelu. Implicitnφ nastavenφ je 0 - sbrText, kterΘ urΦuje, ₧e se v panelu bude nßchßzet text z vlastnosti Text. Dßle je zde mo₧nΘ indikovat nastavenφ klßvesnice: 1 - sbrCaps, 1 - sbrNum, 1 - sbrIns, 1 - sbrScrl. Tato nastavenφ urΦujφ zdali jsou zapnuta Φi vypnuta velkß pφsmena (CapsLock), numerickß klßvesnice (NumLock), p°epis (pomocφ klßvesy Insert) a ScrollLock. Dßle je zde mo₧nΘ nastavit panel tak aby zobrazoval Φas (5 - sbrTime) nebo datum (6 - sbrDate).
Bevel UrΦuje typ okraje, kter²m je panel ohraniΦen: 1 - sbrInset - zapuÜt∞n² okraj, 2 - sbrRaised - vystoupl² okraj, 0 - sbrNoBevel - bez okraje.
AutoSize Zde nastavφte jestli se mß velikost panelu nastavovat automaticky. Jestli₧e zvolφte 1 - sbrSpring je zb²vajφcφ prostor na stavovΘm °ßdku rozd∞len mezi panely s tφmto nastavenφm.
Minimum Width (MinWidth) Zde nastavenß velikost, znamenß p°i automatickΘm nastavovßnφ velikosti minimßlnφ dΘlku panelu. Jinak se jednß o jeho skuteΦnou velikost.

Budete-li m∞nit panely za b∞hu programu, pou₧ijete kolekci Panels, kterß obsahuje vÜechny panely na StatusBaru. Pomocφ metod Add a Remove m∙₧ete p°idßvat a odstra≥ovat jednotlivΘ panely z kolekce. Chcete-li odstranit vÜechny panely najednou, pou₧ijte metodu Clear. Pro p°φstup k jednotliv²m panel∙m kolekce, zvolte stejn² postup jako u kterΘkoliv jinΘ kolekce. U nich pak m∙₧ete nastavovat vlastnosti uvedenΘ v tabulce. Uvedeme si p°φklad p°idßnφ jednoho panelu na StatusBar. Vlo₧te na formulß° StatusBar a jedno tlaΦφtko a potΘ vlo₧te do formulß°e nßsledujφcφ k≤d.

Private Sub Command1_Click()
  Dim NewIndex As Long

  NewIndex = StatusBar1.Panels.Count + 1
  StatusBar1.Panels.Add NewIndex 'Vlo₧enφ novΘho panelu
  With StatusBar1.Panels(NewIndex)
    .Alignment = sbrRight 'zarovnßnφ textu do prava
    .AutoSize = sbrSpring 'automatickß velikost
    .Bevel = sbrRaised 'vystoupl² okraj
    .MinWidth = 1500 'minimßlnφ velikost
    .Text = "Pokus" 'text panelu
    .ToolTipText = "Pokusn² panel"
  End With
End Sub

Zp∞t na obsah


15.4 ToolBar

Prvek slou₧φ pro vytvß°enφ nßstrojov²ch liÜt. Pomocφ vlastnosti Style budete moci nastavit (1 - tbrFlat) i vzhled, kter² je podobn² nßstrojovΘ liÜt∞ Internet Exploreru, kdy obrysy tlaΦφtka vystupujφ a₧ ve chvφli, kdy nad nφm p°ejφ₧dφte myÜφ. Implicitnφ nastavenφ tΘto vlastnosti urΦuje vzhled s vystoupl²mi okraji tlaΦφtek.

Pokud bude vzhled ToolBaru nem∞nn² nebo bude mφt n∞jak² implicitnφ vzhled, je nejjednoduÜÜφ jeho vzhled navrhnout pomocφ strßnek vlastnostφ p°i nßvrhu aplikace. Vyberte ToolBar, poklepejte v okn∞ vlastnostφ na vlastnost (Custom). V okn∞ kterΘ se vßm otev°e se nachßzejφ t°i zßlo₧ky. Pomocφ prvnφ m∙₧ete nastavovat obecnΘ vlastnosti platnΘ pro cel² ToolBar.

Nßzev polφΦka (vlastnosti) Popis
ImageList UrΦuje prvek typu ImageList, kter² bude pou₧φvßn jednotliv²mi tlaΦφtky pro zφskßnφ obrßzk∙.
DisabledImageList Zde se znovu zadßvß prvek ImageList, tentokrßt vÜak obrßzky v n∞m budou po₧ity pouze tehdy, je- li tlaΦφtko vypnuto.
TextAlignment UrΦuje, zda-li se text tlaΦφtka umφstφ pod obrßzek nebo napravo od obrßzku.
Style Nabφzφ dv∞ mo₧nosti stylu zobrazenφ ToolBaru. Je-li nastaveno na 0 - tbrStandard, jsou tlaΦφtka zobrazena s vystoupl²mi okraji. V p°φpad∞ nastavenφ 1 - tbrFlat je ToolBar zobrazen ve stylu Internet Exploreru.
Warpable V p°φpad∞, ₧e se tlaΦφtka nevejdou do Üφ°ky ToolBaru, urΦφ tato vlastnost jestli se mß zalomit na dalÜφ °adek nebo mß pokraΦovat v mφstech, kterß jsou pro u₧ivatele neviditelnß.

Po nastavenφ obecn²ch vlastnostφ m∙₧eme p°ikroΦit k vytvß°enφ tlaΦφtek (druhß zßlo₧ka). TlaΦφtka p°idßvßme a ruÜφme pomocφ tlaΦφtek Insert Button a Remove Button. Pohyb po tlaΦφtcφch provßdφme pomocφ polφΦka Index a tlaΦφtek se Üipkami, kterΘ k n∞mu p°ilΘhajφ. A potΘ lze nastavovat nßsledujφcφ vlastnosti:

Nßzev polφΦka (vlastnosti) Popis
Caption Text tlaΦφtka
Value UrΦuje stav tlaΦφtka, zdali je zmßΦknutΘ Φi nikoliv.
Image UrΦuje index obrßzku v p°i°azenΘm ImageListu. Takto zadan² obrßzek je zobrazen v tlaΦφtku.
Style Touto vlastnostφ nastavφte typ tlaΦφtka:

1 - tbrCheckStavovΘ tlaΦφtko nabφzejφcφ stavy zapnuto a vypnuto (podobn∞ jako CheckBox)
2 - tbrButtonGroupSlou₧φ pro p°epφnßnφ mezi n∞kolika tlaΦφtky, kterΘ jsou nastaveny na stejnou hodnotu. Funguje stejn∞ jako prvek OptionButton. DalÜφ skupinu odd∞lφte pomocφ tlaΦφtka typu tbrSeparator.
3 - tbrSeparatorSlou₧φ jako odd∞lovaΦ mezi tlaΦφtky. A to jak opticky tak logicky (rozd∞luje tlaΦφtka s nastavenφm tbrButtonGroup na skupiny.
4 - tbrPlaceHolderSlou₧φ pro vytvo°enφ mezery mezi tlaΦφtky. Jejφ Üφ°ku nastavφte pomocφ polφΦka Width:(Placeholder). Tuto mezeru m∙₧ete vyu₧φt takΘ pro umφst∞nφ dalÜφch prvk∙, nap°. ComboBoxu.
5 - tbrDropdownTlaΦφtko, vedle n∞j₧ je umφst∞na Üipka, kterß umo₧nφ vyrolovßnφ menu (viz text za tabulkou vlastnostφ).

Ve spodnφ Φßsti zßlo₧ky Buttons se nachßzφ Φßst nazvanß ButtonMenus. Zde m∙₧ete k tlaΦφtku typu tbrDropDown vytvo°it menu. Polo₧ku do menu vlo₧φte pomocφ tlaΦφtka Insert ButtonMenu a odstranφte tlaΦφtkem Remove ButtonMenu. Pohyb po jednotliv²ch polo₧kßch provadφte pomocφ polφΦka Index a k n∞mu p°ilΘhajφcφm tlaΦφtk∙m se Üipkami. Po vybrßnφ p°φsluÜnΘ polo₧ky staΦφ vyplnit pouze polφΦko Text.

Pro ·pravy ToolBaru a jeho tlaΦφtek p°i b∞hu programu slou₧φ kolekce Buttons. V nßsledujφcφm p°φkladu si ukß₧eme, jak vytvß°et ToolBar za b∞hu programu a jak obsluhovat zßkladnφ udßlosti. Udßlost ButtonClick zachytßvß kliknutφ na tlaΦφtko, a udßlost ButtonMenuClick zachytφ kliknuti do menu n∞kterΘho tlaΦφtka typu tbrDropdown. Vytvo°te si nov² projekt a na formulß° vlo₧te prvek ToolBar. Dßle p°idejte nßsledujφcφ k≤d a m∙₧et zkouÜet co ToolBar dokß₧e.

Private Sub Form_Load()
  'p°idß obyΦejnΘ tlaΦφtko
  Toolbar1.Buttons.Add 1
  With Toolbar1.Buttons(1)
    .Caption = "TlaΦφtko"
    .Style = tbrDefault
  End With
  'p°idß tlaΦφtko, kterΘ se bude chovat
  'jako CheckBox
  Toolbar1.Buttons.Add 2
  With Toolbar1.Buttons(2)
    .Caption = "Volba"
    .Style = tbrCheck
  End With
  'p°idß dv∞ tlaΦφtka, kterß se budou chovat
  'jako OptionButton
  Toolbar1.Buttons.Add 3
  With Toolbar1.Buttons(3)
    .Caption = "V²b∞r 1"
    .Style = tbrButtonGroup
  End With
  Toolbar1.Buttons.Add 4
  With Toolbar1.Buttons(4)
    .Caption = "V²b∞r 2"
    .Style = tbrButtonGroup
  End With
  'p°idß separßtor
  Toolbar1.Buttons.Add 5
  Toolbar1.Buttons(5).Style = tbrSeparator
  'p°idß tlaΦφtko s menu
  Toolbar1.Buttons.Add 6
  With Toolbar1.Buttons(6)
    .Caption = "Menu"
    .Style = tbrDropdown
    .ButtonMenus.Add 1
    .ButtonMenus(1).Text = "Polo₧ka 1"
    .ButtonMenus.Add 2
    .ButtonMenus(2).Text = "Polo₧ka 2"
  End With
End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
  MsgBox "Kliknuto na tlaΦφtko:" & Button.Caption
End Sub

Private Sub Toolbar1_ButtonMenuClick(ByVal ButtonMenu As MSComctlLib.ButtonMenu)
  MsgBox "Kliknuto ne polo₧ku v menu:" & ButtonMenu.Text
End Sub

Zp∞t na obsah


15.5 CoolBar

K Φemu tento prvek slou₧φ? M∙₧ete jej vid∞t u nßstrojov²ch liÜt v Microsft Office 95 a nov∞jÜφch nebo v hlavnφm panelu u Windows 98 a nov∞jÜφch. Jednß se o ten prvek, kter² pomocφ v²stupku v levΘ Φßsti (p°φpadn∞ v hornφ Φßsti, kdy₧ je prvek orientovßn vertikßln∞) a umo₧≥uje p°esouvat a nastavovat velikost Φßstem nßstrojovΘ liÜty.

JednotlivΘ prou₧ky, kterΘ tento prvek obsahuje, vÜak nenahradφ ToolBar. Ka₧d² takov²to prou₧ek je mo₧nΘ svßzat s libovoln²m prvkem (nejb∞₧n∞jÜφ bude nejspφÜ ToolBar) a prou₧ek pak automaticky m∞nφ jeho velikost. Je d∙le₧itΘ aby prvek, kter² chcete svßzat s prou₧kem se nenachßzel na formulß°i, ale p°φmo na CoolBaru samotnΘm.

V nßvrhovΘm m≤du, m∙₧ete nastavovat a m∞nit vzhled CoolBaru pomocφ strßnek vlastnostφ, kterΘ vyvolßte poklepßnφm v okn∞ vlastnostφ na polo₧ku Custom. V prvnφ zßlo₧ce nastavujete obecnΘ vlastnosti, kterΘ jsou spoleΦnΘ pro cel² CoolBar.

Nßzev polφΦka (vlastnosti) Popis
ImageList Zde se nastavφ prvek typu ImageList, z n∞ho₧ budou Φerpßny obrßzky pro jednotlivΘ pruhy CoolBaru.
Orientation Nastavφ sm∞r CoolBaru na horizontßlnφ Φi vertikßlnφ.
BandBorders UrΦuje, zda-li bude ka₧d² pruh ohraniΦen okrajem.
FixedOrder Zajistφ, aby nebylo mo₧nΘ m∞nit po°adφ jednotliv²ch pruh∙.
VariantHeight Je-li toto polφΦko zatr₧eno (vlastnost nastavena na True) je mo₧nΘ aby jednotlivΘ °ßdky CoolBaru m∞ly rozdφlnou v²Üku.

JednotlivΘ pruhy m∙₧ete nastavovat a vytvß°et v druhΘ zßlo₧ce. Ta mß stejn² nßzev (Bands) jako kolekce, pomocφ kterΘ lze p°istupovat k pruh∙m z k≤du. Tato mß metody Add a Remove pro p°idßvßnφ a odstra≥ovßnφ. Jejich ekvivalentem jsou ve strßnkßch vlastnostφ tlaΦφtka Insert Band a Remove Band. Pro pohyb po jednotliv²ch pruzφch slou₧φ op∞t polo₧ka Index spolu s tlaΦφtky, kterΘ k n∞mu p°ilΘhajφ.

Nßzev polφΦka (vlastnosti) Popis
Child UrΦuje, kter² prvek bude svßzßn s dan²m pruhem.
Style Je-li tato vlastnost nastavena na cc3BandFixedSize, je velikost pruhu pevn∞ dßna a u₧ivatel ji nem∙₧e zm∞nit.
Caption Text, kter² bude zobrazen na poΦßtku pruhu, a kter² rozÜφ°φ oblast, ve kterΘ lze chytit pruh a nßsledn∞ jej p°esovat.
Image Funguje stejn∞ jako vlastnost Caption, s tφm rozdφlem ₧e zobrazφ obrßzek podle zadanΘho indexu z prvku ImageList.

Na zßv∞r si ukß₧eme jak nastavovat CoolBar z k≤du. Vytvo°te nov² projekt a na formulß° vlo₧te prvek CoolBar. Do n∞j pak vlo₧te po jednom TextBoxu, CommandButtonu, CheckBoxu a prvku Frame. P°idejte nßsledujφcφ k≤d a spus¥te.

Private Sub Form_Load()
  With CoolBar1.Bands(1)
    .Caption = "Pruh 1"
    Set .Child = Text1
  End With
  With CoolBar1.Bands(2)
    .Caption = "Pruh 2"
    Set .Child = Command1
  End With
  With CoolBar1.Bands(3)
    .Caption = "Pruh 3"
    Set .Child = Frame1
  End With
  CoolBar1.Bands.Add
  With CoolBar1.Bands(4)
    .Caption = "Pruh 4"
    Set .Child = Check1
  End With
End Sub

Private Sub Check1_Click()
  'zapne a vypne pevnΘ po°adφ pruh∙
  CoolBar1.FixedOrder = Check1.Value
End Sub

Zp∞t na obsah