50.1 MDI menu
50.2 MDI a PictureBox
50.3 MDI vkládání objektů
50.4 V další lekci
50.1 MDI menu
Jistě to znáte ze spousty aplikací. Ten horní tenký proužek s nápisy Soubor
, Úpravy
atd. U programů typu SDI se většinou nemění. Ale u programů MDI požadujeme vysokou variabilitu. Důvodem je to, že můžeme pracovat i s různými druhy souboru, a podle toho potřebujeme menu měnit. A jiné menu potřebujeme i tehdy, není-li právě otevřený žádný dokument.
Tohoto efektu lze dosáhnout poměrně snadným způsobem. A to tak, že pro každý formulář vytvoříme menu, jak pro samotný MDI formulář (toto menu bude použito, pokud není aktivní žádný formulář (není otevřen dokument)), tak pro formuláře dokumentů (menu potom bude závislé na zobrazeném formuláři).
Tato technika je neuvěřitelnou úsporou kódu. Když vzpomenu na své začátky ve VB, kdy jsem tuto funkci neznal a tvořil jsem tudíž velice složité programové konstrukce, které toto měly nahradit, aniž bych věděl, že něco takového existuje. Nepřál bych vám je psát. A potom po čase, když jsem tuto možnost objevil spíše omylem, byla to pro mě radost, pomyšlení na to, že tvořit další aplikace ve VB bude tak snadné.
50.2 MDI a PictureBox
Mnohdy je potřeba, aby na formuláři MDI nebyly jen jiné formuláře, ale třeba i jiné ovládací prvky, například tlačítka apod. K tomu potřebujeme nějaký kontejnerový prvek. Frame
použít nemůžeme, důvodem je prostě to, že to nejde. Jde ale využít prvku PictureBox
. Ten se nám po vložení do formuláře „připlácne“ k jedné jeho straně. Potom si musíme upravit jeho rozměry tak, jak nám vyhovuje, a můžeme na něj vkládat různé ovládací prvky.
50.3 MDI vkládání objektů
Na MDI můžete vkládat pouze objekty, které nejsou viditelné v RUN módu. Například CommonDialog
nebo Timer
. Prvky, které jsou v RUN módu viditelné, musíte vkládat na PictureBox
, který zároveň tvoří výjimku spolu s prvkem data
, který se také „přicucne“ k některé ze stran. Bavím se teď víceméně o základních prvcích. Prvky jako CoolBar
a ToolBar
, které jsou pro MDI jako stvořené, na něj bez problémů vložit můžete.
50.4 V další lekci
No, touto lekcí se již dostáváme do druhé padesátky. I když pochybuji, že by vzniklo ještě jednou padesát lekcí. Myslím, že probráno toho bylo spoustu, i když zdaleka ne polovina, některá zákoutí jsou ale natolik specifická, že se jimi ani zabývat nebudu, protože by se našlo stěží pět jedinců, které by to teoreticky mohlo zajímat. Tedy zpět k tomu, co nás čeká příště. Opustíme MDI a vytvoříme si vlastní ActiveX.