Aktualizováno v únoru 2019

      
 

   Základy programování - svislý ukazatel hodnoty vidlácky? Nic jednoduššího
       

Potřebujete svislý ukazatel hodnoty? Pro vidláka nic jednoduššího.

Příklady obrazovek. Ukazatel na obrázcích znázorňuje minimální hodnotu (1, sloupec je bez čísla), malou hodnotu (don 20, sloupec je bez čísla), větší hodnotu (s číslem) a maximum (200):

Exe ukázku lze stáhnout zde. Zdrojový projekt zde.

Hodnoty se nastavují v NumericUpDown1 boxu, maximum a minimum lze nastavit kliknutím na tlačítko M.
Protože v Toolboxu nebyl žádný vhodný objekt pro svislý ukazatel, vidlák použil obyčejnou komponentu Label a připsal pár instrukcí.  Pro zobrazování svislého ukazatele hodnoty byla komponenta Label obarvena na modro. Hodnotě je rovněž kódem přiřazována výška komponenty label.
K psaní kódu byla použita tzv. třída  (Class) Form. Wokno Form se spouští ve Windows. V ukázce jsou použité tři procedury, napsané do třídy Form1. V ukázce jsou použity příkazy na větvení programu podle podmínek (If-Then-Else) a dosazovací příkazy. Byly ponechány původní názvy objektů z Toolboxu.


Celý kód je zde:

Public Class Form1

Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged

If NumericUpDown1.Value < 20 Then
        Label1.Text =
"" 'kdyz je value mala (do 20) tak se cislo nepise
        Button1.BackColor = Color.Red
Else
        Label1.Text = NumericUpDown1.Value
'kdyz je value vetsi (20 a vice), tak se cislo pise
        Button1.BackColor = Color.Blue
End If

Label1.Height = NumericUpDown1.Value ' vyska sloupce Labelu znazornuje hodnotu Value
Label1.Top = NumericUpDown1.Top + NumericUpDown1.Height - NumericUpDown1.Value
' vršek komponenty Label1 je srovnan s polohou numericupdown1 a zacatek posunut o vysku - hodnotu value
ToolStripProgressBar1.Value = NumericUpDown1.Value

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        press()
End Sub

Sub press()

If Button1.BackColor = Color.Blue Then
        Button1.BackColor = Color.Red
        NumericUpDown1.Value = 1
Else
        Button1.BackColor = Color.Blue
        NumericUpDown1.Value = 200
End If

End Sub

End Class

Poznámky

1. Na jednoduchých příkladech jsem ukázal abstrakci práce se zapouzdřenými vizuálními komponenty, na které jsem narazil v Toolboxu. Ušetřili nám neskutečné množství práce. Kdybychom vše programovali standardním psaním imperativního kódu, museli bychom se hodně učit a  měli bychom měsíc co dělat.

2. Existují objekty, které nejsou vizuální. Opět jde o zapouzdřené objekty, které nám nabízejí spoustu metod. Najdeme komponenty časovače, pro sériovou komunikaci, pro práci v síti Internet s nejrůznějšími protokoly, pro předávání zpráv mezi procesy, pro práci s databázovými strukturami a já nevím, pro co všechno. Objekty nám ušetří spoustu času a umožní nám rychle naspat hezké a přehledné aplikace, které toho mohou hodně umět.

Zpět na obsah


TU 73, Mira, ok1ufc