× Aktuálně z oboru

SHIELD Experience Upgrade 7 – méně hledání a více zábavy [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]
Celá zprávička [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]

VB - 13. lekce

[ http://programujte.com/profil/27-jiri-chytil/ ]Google [ ?rel=author ]       [ http://programujte.com/profil/20356-kubec-milan-a-vera/ ]Google [ ?rel=author ]       9. 5. 2005       18 463×

13.1 Control Box
13.2 Falešný Fullscreen
13.3 Další vlastnosti a možnosti formuláře (rozměry a jednotky)
13.4 Fokus
13.5 Načítání textových souborů
13.6 Ukládání textových souborů
13.7 Domácí úkol
13.8 Další lekce

13.1 Control Box.

To jsou ta tři tlačítka v horní pravé části formuláře ve Visual Basicu, můžete si vybrat, které zobrazit a které ne. Pokud nastavíme vlastnost ControlBox na False, tlačítka nám zmizí a zmizí také ikona v levém rohu titulku okna. Dále je tu možnost zvolit si ikonu, a to ve vlastnosti Icon. Pokud chceme znemožnit zvětšení okna na celou obrazovku, tak hodnotu vlastnosti MaxButton změníme na False a tlačítko nám zšedne. Totéž můžeme udělat i s minimalizačním tlačítkem ve vlastnosti MinButton. Pokud nastavíme obě dvě možnosti na False, tak obě tlačítka místo zešednutí zmizí.

Dále nás tu bude zajímat typ formuláře – BorderStyle. První hodnotou je None. Je to formulář bez titulku a bez možnosti s ním pohybovat nebo měnit jeho velikost. Další hodnotou je FixedSingel, je to formulář bez možnosti změny velikosti a bez tlačítek na minimalizaci a maximalizaci. To si ovšem můžete změnit. Další je zde volba Sizable, což je standardní formulář, který vám Visual Studio vytvoří při otevření nového projektu. Pak je tu FixedDialog – formulář optimalizovaný pro dialogy. A potom ještě dva druhy ToolBarů, jeden s měnitelnou velikostí a druhý s velikostí pevně stanovenou.

Potom je tu ještě nastavení okna tj. jak se zobrazí. Ve vlastnosti WindowsState si můžete nastavit normální zobrazení nebo se okno může otevřít maximalizované či jen minimalizované na liště.

A ještě je tu jedna věc, a to, kde se nám okno zobrazí. Ve vlastnosti StartUpPosition máme na výběr manuální, které je závislé na nastavení vlastností Top a Left. Pak je tu vycentrování na střed obrazovky a ještě náhodné sponové umístění.


13.2 Falešný Fullscreen.

Zde využijeme znalostí zmíněných v kapitole výše a nastavíme si  WindowsState na Maximized a BorderStyle na None. Pokud teď program spustíte, máte okno přes celou plochu. Falešný je z důvodu, že se podle něj řídí pouze velikost formuláře a nikoliv ovládacích prvků a podobně.
Pokud nevíte, jak program zastavíte, tak kombinací Ctrl + Alt + Break.


13.3 Další vlastnosti a možnosti formuláře (rozměry a jednotky).

Myslím, že teď je ta pravá chvíle popovídat si o rozměrech a jednotkách formuláře.  Velikost formuláře a jeho vnitřní souřadnice můžeme udávat nejen pomocí Width a Height, ale také pomocí vlastností ScaleWidth a Scale Height. Abychom ale mohli využít jejich potenciál, musíme nastavit vlastnost ScaleMode na nám vyhovující, v nabídce je několik různých jednotek. Nejzajímavější jednotkou bude asi pixel. Mezi ty, jejichž využití nebude nejčastější, se můžou zařadit ostatní, jako palce, milimetry apod. Pokud tedy chceme na formuláři pracovat s obrázky, tak je použití pixelů asi nejshodnější a tím se také ScaleHeight a ScaleWidth stávají velmi silnou zbraní. Twip je sice pěkná jednotka, ale pro tuto práci je naprosto nevyhovující. Pokud změníte na jednom formuláři ScaleMode třeba na ony pixely, pak jsou všechny hodnoty rozměrů a poloh v této jednotce, to znamená, že pokud na formulář vložíte tlačítko, tak jeho délka, výška i pozice nebudou v twipech, ale v pixelech. Tlačítko již kvůli zde zmíněné vlastnosti jazyka VB nemá vlastnosti ScaleHeight a ScaleWidth, ale jen Width a Height. Ty jsou ovšem v pixelech podle nastavení ScaleMode.


13.4 Fokus.
Co to asi je? Představte si, že máte dialog a v něm se pohybujete po tlačítkách nebo pomocí tabulátoru. Prvek, který právě máte označený, má fokus. S těmito prvky se pak pracuje pomocí mezerníku případně jiných kláves. Pokud spustíte program, fokus dostane ten objekt, který byl jako první vložen na formulář (pokud tedy může, fokus nemůže dostat například objekt Label, Line a jim podobné). Pro práci s fokusem tu mám i dvě procedury:


Private Sub Command1_GotFocus()

End Sub


Private Sub Command1_LostFocus()

End Sub

První se vykoná, když objekt dostane fokus, a ta druhá, když ho ztratí. Toho se dá využít poměrně jednoduše, třeba jako nápověda, když nastavujete program pomocí jednotlivých CheckBoxů, které jsou popsány jen jednotlivými hesly a dole v labelu se zobrazuje jejich popis. Přikládám příklad:


Private Sub Check1_GotFocus()
Label1.Caption = "Provede kompletní hloubkovou kontrolu registrů"
End Sub

Private Sub Check2_GotFocus()
Label1.Caption = "Vyčistí nepotřebné systémové soubory a soubory aplikací"
End Sub

Private Sub Check3_GotFocus()
Label1.Caption = "Obnoví původní nastavení zakládních aplikací"
End Sub

Private Sub Check4_GotFocus()
Label1.Caption = "Optimalizuje struktuturu vašich souborů a volné místo na HDD"
End Sub

Private Sub Check5_GotFocus()
Label1.Caption = "Po skončení kontroly vypne PC"
End Sub

Private Sub Check1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Caption = "Provede kompletní hloubkovou kontrolu registrů"
End Sub

Private Sub Check2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Caption = "Vyčistí nepotřebné systémové soubory a soubory aplikací"
End Sub

Private Sub Check3_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Caption = "Obnoví tovární nastavení zakládních aplikací"
End Sub

Private Sub Check4_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Caption = "Optimalizuje struktuturu vašich souborů a volné místo na HDD"
End Sub

Private Sub Check5_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Caption = "Po skončení kontroly vypne PC"
End Sub

V tomto příkladě je použita i ukázka, jak používat nápovědu při přejetí myší nad objektem - to je druhá polovina kódu.


13.5 Načítání textových souborů.

Na následující práci si nachystáme jeden TextBox a jeden soubor napsaný třeba v poznámkovém bloku, který potom budeme editovat pomocí našeho programu. Dále si vložíme CommonDialog. Abychom soubor mohli otevřít, budeme potřebovat následující kousek kódu:


Private Sub Command1_Click()
  CommonDialog1.ShowOpen  'zobrazí commondialog pro otevření souboru
  Open CommonDialog1.FileName For Input As #1 'procedury otevírání
  Do Until EOF(1) 'Cyklus, který hledá konec souboru
    Line Input #1, RadekTextu 'načítání řádků do proměnné
    CelyText = CelyText & RadekTextu & Chr(13) & Chr(10)
  Loop
  Text1.Text = CelyText 'Načtení do TextBoxu
  Close #1 'Ukončení Open
End Sub

Nás bude zajímat především třetí řádek. Ten je pro nás podstatný slovíčkem Open, kterým bude vždy začínat, následovat bude adresa, tentokráte zvolená CommonDialogem, potom režim, ve kterém ho budeme otevírat. Je jich několik, pro nás je zatím důležitý Input, ten je od adresy oddělován For, a nakonec za As je číslo #1 - může to být libovolné celé číslo od 1 do 255. Délka textu nesmí překročit 64Kb, protože to je maximální hodnota, kterou je schopen pojmout TextBox. Na dalším řádku následuje cyklus Do ... Loop, který se provádí, dokud program nenarazí na konec souboru. Cyklus obsahuje kód, který ze souboru bere řádek po řádku a kopíruje ho do proměnné RadekTextu. Ten se pak zpátky skládá dohromady do proměnné CelyText, přidávají se znaky ukončující řádek a přesouvající kurzor na začátek. To jsou Chr(13) + Chr(10). Jakmile soubor narazí na konec souboru, cyklus se přestane provádět a proměnná CelyText se zkopíruje do TextBoxu. Celé se to uzavře příkazem Close s číslem souboru. Zde #1. Soubor můžeme zavřít, protože již budeme editovat načtená data. Tento kód je úplně holý bez odchycených chyb apod. Nyní se pustíme do ukládání souboru. To je otevíraní dosti podobné a nemělo by tedy činit problémy.


13.6 Ukládání textových souborů.

Začneme zdrojovým kódem:


Private Sub Command2_Click()
  CommonDialog1.ShowSave
  Open CommonDialog1.FileName For Output As #1
  Print #1, Text1.Text
  Close #1
End Sub

Tímto kódem otevřete soubor pro zápis mód Output. Pomocí příkazu Print do něj zapíšete první parametr, ten určuje, kam se bude zapisovat - zde je to soubor #1 a druhý určuje, co se bude zapisovat, zde to bude obsah TextBoxu. A na závěr se soubor uzavře. Ještě bych doporučil nastavit posuvníky na TextBoxu tak, aby se zobrazovaly oba. Ve vlastnosti ScrollBars se nastaví hodnota True.


13.7 Domácí úkol. Vaším domácím úkolem bude vytvořit něco jako je poznámkový blok, tak aby měl co největší počet funkcí. Ovšem musíte použít obyčejný TextBox nikoliv RichTextBox. Můžete třeba měnit barvu pozadí textu, barvu textu, vkládat čas a datum atd. Doufám, že jsem vás dostatečně motivoval. (Jako úkol posílejte textové obsahy všech souborů.)


13.8 V další lekci...

V další lekci: Databáze Access a objekty OLE.


Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2005050801-vb-13-lekce/ ].