39.1 Používání znakové sady Unicode
39.2 Úvod do tabulky FlexGrid
39.3 práce s tabulkou FlexGrid
39.4 Výběr a formátování
39.5 Domácí úkol
39.6 V další lekci
..
39.1 Používání znakové sady Unicode
Možná jste někdy chtěli použít znakovou sadu Unicode ve vašem programu a nevěděli jste, jak na to. Pokud tedy potřebujete někam vložit znak typu Unicode, nebudou vám stačit běžné textboxy a budete muset využít trochu jinou nabídku.
Takže si otevřete dialog s výběrem komponent a pohledejte Microsoft Forms 2.0 Object Library. Zobrazí se vám asi 14 nových objektů, které podporují znakovou sadu Unicode. Také asi bude málo funkce
Chr(i)
Na místo toho použijeme funkci
ChrW(i)
Všechny znaky si pak můžeme vytisknout třeba do nového listboxu.
For i = 1 To 4096
List1.AddItem ChrW(i) & " - " & i
Next i
Kdykoliv budeme potřebovat vytisknout nějaký speciální znak, nebude to problém.
39.2 Úvod do tabulky FlexGrid
FlexGrid je mřížka, která nám umožňuje jednoduše spravovat databáze. Můžeme do ní zobrazovat různé záznamy a psát faktury. Práce s ní je v celku jednoduchá, ale ne příliš zajímavá. Umět ji používat se může hodit, už jsem ji také několikrát využil, když se mi nechtělo dělat žádný vlastní objekt.
První je nutné ji do formuláře vložit. Provedeme to tak, že klikneme pravým tlačítkem na toolbox a dáme components. Najdeme si právě FlexGrid. Vložíme si jeden na formulář a můžeme začít.
Pojem sloupec a řádek je nejspíš každému jasný, my se teď podíváme jak s nimi pracovat, jak do nich psát data a podobně. Prvně se podívejme, jak FlexGrid vypadá:
Můžete si všinout i dialogu, kde je celkem dost možností, můžete si je vyzkoušet. Důležitý je nejen počet sloupců a řádků, ale také počet pevných sloupců a řádků, do kterých nemůže uživatel zapisovat.
39.3 Práce s tabulkou FlexGrid
Musíme do nich tedy něco vepsat pomocí kódu. Jak? No je to dosti podobné práci s dvourozměrným polem. Viz kód:
Private Sub Command1_Click()
fgTest.TextMatrix(0, 1) = "Jmeno"
fgTest.TextMatrix(0, 2) = "věk"
For i = 1 To fgTest.Rows - 1
fgTest.TextMatrix(i, 0) = i
Next i
End Sub
Můžeme doplňovat jak po jednom prvku, tak pomocí cyklů. Můžete si také přidávat záznamy. Takto:
Dim i As Long
For i = 1 To fgTest.Rows - 1
fgTest.TextMatrix(i, 0) = i
Next i
fgTest.AddItem i, i
K odebírání záznamů se používá
Private Sub Command2_Click()
fgTest.RemoveItem (i)
i = i - 1
End Sub
Pokud do toho všeho nechcete vměšovat další proměnnou, lze použít třeba tento kód:
Private Sub Command1_Click()
Dim i As Long
For i = 1 To fgTest.Rows - 1
fgTest.TextMatrix(i, 0) = i
Next i
fgTest.AddItem fgTest.Rows, fgTest.Rows
End Sub
Private Sub Command2_Click()
fgTest.RemoveItem (fgTest.Rows)
End Sub
I zde je tedy jen jako počítadlo v cyklu. Ještě je důležité do buněk zapisovat. To budeme prozatím dělat přes textbox, takto:
Private Sub fgTest_Click()
Text1.Text = fgTest.TextMatrix(fgTest.Row, fgTest.Col)
End Sub
Private Sub cmd_Click()
fgTest.TextMatrix(fgTest.Row, fgTest.Col) = Text1.Text
End Sub
39.4 Výběr a formátování
Pokud chceme pracovat s větším výběrem, tak rozah výběru udávají vlastnosti
Row – RowSel
Col – ColSel
Pomocí nich se potom výběr formátuje nebo třeba maže. Výběr můžete třeba tímto způsobem označovat tučně:
Private Sub Command3_Click()
fgTest.FillStyle = flexFillRepeat
fgTest.CellFontBold = True
End Sub
Tento kód nám zajišťuje, že pracujeme s celým výběrem.
fgTest.FillStyle = flexFillRepeat
Zkuste napsat tohle:
fgTest.FillStyle = flexFillSingle
V tomto případě budete pracovat s jedinou buňkou. Ale to není vše, uživatele můžeme omezovat i jinak, třeba výběrem jen celých sloupců nebo řádků.
A ještě mnohem více věcí nám tento prvek nabízí, ale na to, co nám nabízí, se podíváme příště.
39.5 Domácí úkol
Dnes zkuste udělat malý Excel. Prostě program, do kterého budete moci zapisovat údaje, který bude mít uživatelsky definovaný počet sloupců a řádku a bude se do něj dát psát stejně jako do oken Excelu, ale stačí přes tu horní lištu. A můžete přidat i nějakou vlastní tvořivost (např. nastavení barev).
39.6 V další lekci
Propojení FlexGridu s databází