Dopsání obslužných funkcí pro prvky formuláře

Přehled informací

Připomenutí jednotlivých prvků formuláře s označením jmen jednotlivých prvků

Obslužné kódy jednotlivých prvků formuláře

V dalším výkladu uvádíme popis vždy jen pro jeden prvek (ostatní se většinou liší jen proměnnými, do kterých se ukládají nebo získávají hodnoty), u ostatních je uveden jen okomentovaný kód funkce.

Příkazové tlačítko pro získání souřadnic středu - CommandButton1 a 2

Obslužná procedura tlačítka Ruční nastavení, bude reagovat na stisknutí tlačítka. Procedura umožní zadat souřadnice středu bodu objektu. Kód procedury bude obahovat následující části:

V kódu procedury si všimněte způsob práce se souřadnicemi (získanými metodou GetPoint). Pokud byste se pokusili souřadnice přiřadit rovnou do textového pole (TextBox1.Value = gvarStredKruz(0)) došlo by k chybě.

    Private Sub CommandButton1_Click()
                  ' vyvolání procedury při kliknutí nad prvkem
      Dim souradnice(0 To 2) As Double
                  ' deklarace proměnné pole souřadnic středu obrazce
      Call Me.Hide
                  ' skrytí formuláře (dialogového boxu)
        gvarStredKruz = ThisDrawing.Utility.GetPoint _
          (, "Zadej střed kružnice: ")
                  ' získání hodnoty souřadnic bodu
        souradnice(0) = CInt(gvarStredKruz(0))
        souradnice(1) = CInt(gvarStredKruz(1))
        souradnice(2) = CInt(gvarStredKruz(2))
        TextBox1.Value = souradnice(0)
        TextBox2.Value = souradnice(1)
        TextBox3.Value = souradnice(2)
                  ' zobrazení hodnot souřadnic středu ve formuláři
                  ' CInt - převod souřadnic na integer
      Call Me.Show
            ' opětovné zobrazení formuláře
    End Sub

Obslužná funkce druhého tlačítka pro zadání bodu má obdobnou funkci, proto již nebudeme uvádět podrobný popis.

    Private Sub CommandButton2_Click()
                  ' vyvolání procedury při kliknutí nad prvkem
      Dim souradnice(0 To 2) As Double
                  ' deklarace proměnné pole souřadnic středu obrazce
      Call Me.Hide
                  ' skrytí formuláře (dialogového boxu)
        gvarStredKrych = ThisDrawing.Utility.GetPoint _
          (, "Zadej střed krychle: ")
                  ' získání hodnoty souřadnic bodu
        souradnice(0) = CInt(gvarStredKrych(0))
        souradnice(1) = CInt(gvarStredKrych(1))
        souradnice(2) = CInt(gvarStredKrych(2))
        TextBox4.Value = souradnice(0)
        TextBox5.Value = souradnice(1)
        TextBox6.Value = souradnice(2)
                  ' zobrazení hodnot souřadnic středu ve formuláři
                  ' CInt - převod souřadnic na integer
      Call Me.Show
            ' opětovné zobrazení formuláře
    End Sub

Příkazové tlačítko OK - CommandButton3

Tlačítko Ok nastaví globální logickou proměnnou gblnVykreslovat na hodnotu True - znamená vykresli zvolený objekt. Procedura zjistí hodnotu nastavení radio tlačítka OptionButton1 (rovná-li se True - bude se vykreslovat kružnice, v opačném případě kvádr). Pro vykreslovaný prvek jsou nastaveny hodnoty proměnných získané z odpovídajících prvků formuláře. Na konci obslužné procedury je zavolán příkaz pro odstranění formuláře z paměti.

    Private Sub CommandButton3_Click()
                  ' vyvolej se při kliknutí na OK
      gblnVykreslovat = True
                  ' uživatel potvrdil dialog vykresli obrazce
                  ' předání hodnot do proměnných
      If (OptionButton1 = True) Then
        gblnOptButtKruznice = True
        gdblPolomerKruz = TextBox7.Value
        gdblPocetKruz = TextBox8.Value
        gdblVzdalenostKruz = TextBox9.Value
      Else
        gblnOptButtKruznice = False
        gdblHloubkaKrych = TextBox10.Value
        gdblSirkaKrych = TextBox11.Value
        gdblVyskaKrych = TextBox12.Value
        gdblPocetKrych = TextBox13.Value
        gdblVzdalenostKrych = TextBox14.Value
      End If
      Unload Me
                  ' odstranění formuláře
    End Sub

Příkazové tlačítko Cancel - CommandButton4

Tlačítko Cancel nastaví globální logickou proměnnou gboolVykreslovat na hodnotu False - znamená nevykresluj nic - uživatel stornoval dialog. Na konci obslužné procedury je zavolán příkaz pro odstranění formuláře z paměti.

    Private Sub CommandButton4_Click()
                  ' vyvolej se při kliknutí na cancel
      gboolVykreslovat = False
                  ' uživatel stornoval dialog, nic se nevykreslí
      Unload Me
                  ' odstranění formuláře
    End Sub

Radio tlačítka OptionButton

Radio tlačítka mají funkci nastavení odpovídajících prvků dialogu pro zvolený objekt. Tlačítko OptionButton1 zavolá proceduru NastaveniKruznice (nastaví formulář pro zadání kružnice), tlačítko OptionButton2 zavolá proceduru NastaveniKvadru (nastaví formulář pro zadání kvádru).

    Private Sub OptionButton1_Click()
                  ' při kliknutí na radiobuton nastav viditelnost prvků
      NastaveniKruznice
    End Sub

    Private Sub OptionButton2_Click()
                  ' při kliknutí na radiobuton nastav viditelnost prvků
      NastaveniKrychle
    End Sub

Rozbalovací seznam - ComboBox1

Rozbalovací seznam má obdobnou funkci jako radio tlačítka. Při změně hodnoty rozbalovacího seznamu je zavolána odpovídající procedura (NastavKruznici nebo NastavKvadr). V kódu procedury si všimněte testování hodnoty rozbalovacího seznamu.

    Private Sub ComboBox1_Change()
                  ' zobarazení správných prvků formuláře
                  ' podle zadané hodnoty
      If (ComboBox1.Value = "Kružnice") Then
        NastaveniKruznice
                  ' má se zadávat kružnice - nastav kružnici
      Else
        NastaveniKrychle
                  ' má se zadávat krychle - nastav krychli
      End If
    End Sub

Posuvníky - ScrollBar

Obslužná funkce posuvníku zajišťuje při změně hodnoty posuvníku nastavení správné hodnoty v odpovídajícím textovém poli. Nastavení se uskuteční prostým přiřazením hodnoty. Programový kód uvádíme pouze u dvou posuvníků, ostatní posuvníky se liší pouze číslem prvků (viz obrázek dialogu).

    Private Sub ScrollBar1_Change()
                  ' při změně provaž (nastav) odpovídající prvky
      TextBox7.Value = ScrollBar1.Value
    End Sub

    Private Sub ScrollBar2_Change()
                  ' při změně provaž (nastav) odpovídající prvky
      TextBox8.Value = ScrollBar2.Value
    End Sub

Textové pole souřadnic středu - TextBox1 - TextBox6

Obslužná procedura textového pole pro zadání souřadnic středu, zajišťuje při změně hodnoty v textovém poli, uložení nové hodnoty do globální proměnné gvarStredKruz (resp. gvarStredKvadr).

Programový kód uvádíme pouze u dvou posuvníků, ostatní posuvníky se liší pouze číslem prvků (viz obrázek dialogu).


    Private Sub TextBox1_Change()
                  ' při změně vytvoř prvek Variant se souřadnicemi středu
      If (IsNumeric(TextBox1.Value) <> True) Then TextBox1.Value = 0
                  ' kontrola zda bylo zadáno číslo

      Dim utilObj As Object
                  ' deklarace objektu
      Set utilObj = ThisDrawing.Utility
                  ' přiřazeni objektu Utillity
      utilObj.CreateTypedArray gvarStredKruz, vbDouble, _
        TextBox1.Value, TextBox2.Value, TextBox3.Value
                  ' převod tří hodnot na pole Variant
    End Sub


    Private Sub TextBox6_Change()
                  ' při změně vytvoř prvek Variant se souřadnicemi středu
      If (IsNumeric(TextBox6.Value) <> True) Then TextBox6.Value = 0
                  ' kontrola zda bylo zadáno číslo

      Dim utilObj As Object
                  ' deklarace objektu
      Set utilObj = ThisDrawing.Utility
                  ' přiřazeni objektu Utillity
      utilObj.CreateTypedArray gvarStredKvadr, vbDouble, _
        TextBox4.Value, TextBox5.Value, TextBox6.Value
                  ' převod tří hodnot na pole Variant
    End Sub

Textová pole pro zadání parametrů objektu - TextBox7 - TextBox14

Obslužná procedura textového pole pro zadání parametrů objektu, zajišťuje při změně hodnoty v textovém poli, kontrolu hodnoty a nastavení odpovídajícího posuvníku.

Programový kód uvádíme pouze u dvou posuvníků, ostatní posuvníky se liší pouze číslem prvků (viz obrázek dialogu).

    Private Sub TextBox7_Change()
                  ' při změně zkontroluj a provaž odpovídající prvky
      If (IsNumeric(TextBox7.Value) = True) Then
                  ' byla zadána číselná hodnota
                  ' zkontroluj, připadně oprav meze
        Select Case TextBox7.Value
          Case Is < 1
            TextBox7.Value = 1
          Case Is > 100
            TextBox7.Value = 100
        End Select
                  ' nastav odpovídající prvek na stejnou hodnotu
        ScrollBar1.Value = CDbl(TextBox7.Value)
      Else
                  ' nebylo zadáno číslo, oprav a nastav hodnoty
        ScrollBar1.Value = 1
        TextBox7.Value = 1
      End If
    End Sub

    Private Sub TextBox8_Change()
      If (IsNumeric(TextBox8.Value) = True) Then
        Select Case TextBox8.Value
          Case Is < 1
            TextBox8.Value = 1
          Case Is > 100
            TextBox8.Value = 100
        End Select
        ScrollBar2.Value = CDbl(TextBox8.Value)
      Else
        ScrollBar2.Value = 1
        TextBox8.Value = 1
      End If
    End Sub

Další postup

Tím máme dokončen projekt s formulářem (dialogovým boxem). Jak tuto aplikaci spustit se dozvíte v následující kapitole.