
Public Sub btnVectorCount_Click()
  Try voA = Convert2Vector(txbInputA.Text)
  If Error Then
     Message.Error("Eingabefehler bei den Koordinaten von A")
     txbInputA.SetFocus
     Return
  Endif
  lblValue.Text = Str(voA.Count)
End ' btnVectorCount_Click() 

Public Sub btnVectorAsString_Click()
  If IsVector(txbInputA.Text) = True Then
     voA = Convert2Vector(txbInputA.Text)
  Else
     Message.Error("Eingabefehler bei den Koordinaten von A")
     txbInputA.SetFocus
  Endif
  lblValue.Text = voA.ToString(True)
End ' btnVectorAsString_Click()

Public Sub btnBetragVektorA_Click()
  Try voA = Convert2Vector(txbInputA.Text)
  If Error Then
     Message.Error(Error.Where & gb.NewLine & Error.Text)
     txbInputA.SetFocus
     Return
  Endif
  lblValue.Text = Format$(voA.Norm(), "#.####")
End ' btnBetragVektorA_Click()

Public Sub btnVectorAB_Click()
  Try voA = Convert2Vector(txbInputA.Text)
  If Error Then
     Message.Error(Error.Where & gb.NewLine & Error.Text)
     txbInputA.SetFocus
     Return
  Endif
  Try voB = Convert2Vector(txbInputB.Text)
  If Error Then
     Message.Error(Error.Where & gb.NewLine & Error.Text)
     txbInputA.SetFocus
     Return
  Endif
  lblValue.Text = SUBVectors(voB, voA).ToString(True)
End ' btnVectorAB_Click()

Public Sub btnSkalarproduktABAC_Click()
  Dim fSkalarProdukt As Float
  
  Try voA = Convert2Vector(txbInputA.Text)
  If Error Then
     Message.Error(Error.Where & gb.NewLine & Error.Text)
     txbInputA.SetFocus
     Return
  Endif
  Try voB = Convert2Vector(txbInputB.Text)
  If Error Then
     Message.Error(Error.Where & gb.NewLine & Error.Text)
     txbInputA.SetFocus
     Return
  Endif
  Try voC = Convert2Vector(txbInputC.Text)
  If Error Then
     Message.Error(Error.Where & gb.NewLine & Error.Text)
     txbInputA.SetFocus
     Return
  Endif
  fSkalarProdukt = SUBVectors(voB, voA).Dot(SUBVectors(voC, voA))
  lblValue.Text = Format$(fSkalarProdukt, "+#.###")

End ' btnSkalarproduktABAC_Click()

------------------

' Public Sub GetVectors()
'   Dim sSubjekt, sPattern As String
'   
'   sSubject = txbInputA.Text
'   sPattern = "^([-+]?[0-9]*\\.?[0-9]+[|])([-+]?[0-9]*\\.?[0-9]+[|])([-+]?[0-9]*\\.?[0-9]+)$"
'   If sSubject Not Match sPattern Then
'      Message.Error("Eingabefehler bei den Koordinaten")
'      txbInputA.SetFocus
'      Return
'   Else
'      voA = Convert2Vector(txbInputA.Text)
'      voB = Convert2Vector(txbInputB.Text)
'      voC = Convert2Vector(txbInputC.Text)  
'   Endif ' Match sPattern
' End ' GetVectors()  


' Public Sub MBGroup_Activate()
' 
'   Select Last.Tag
'     Case "T"
'       lblValue.Text = MBGroupCheck(mboxTime.Text, "T")
'     Case "G"
'       lblValue.Text = MBGroupCheck(mboxCurrency.Text, "G")
'     Case "F"
'       lblValue.Text = MBGroupCheck(mboxPointA.Text, "F")
'     Case "B" ' Default
'       lblValue.Text = MBGroupCheck(mboxPointB.Text, "B")
'     Case "3D" ' Default
'       lblValue.Text = MBGroupCheck(mboxPointC.Text, "3D")
'   End Select
' 
' End ' MBGroup_Activate()
' 
' Public Sub MBGroup_DblClick()
'   MBGroup_Activate()
' End ' MBGroup_DblClick()
' 
' Public Function MBGroupCheck(sMBText As String, sTag As Variant) As String
'   Dim aMatrix As String[]
'   Select sTag
'     Case "T"
'         sSubject = Replace(sMBText, " Uhr", "")
'       ' Stunden gibt es von 00-19 Uhr und von 20-23 und 24 Uhr ist 00:00 Uhr
'       ' Minuten von 00 bis 59
'         sPattern = "^([01][0-9]|2[0-3]):[0-5][0-9]$" ' hh:mm
'       ' sPattern = "^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$" ' hh:mm:ss mit Sekunden
'         If Match(sSubject, sPattern) = True Then
'            Return "Zeit-Eingabe O.K."
'         Else
'            Return "Zeit-Eingabe falsch!"
'         Endif ' Match(sSubject, sPattern) = True ?
'     Case "G"
'         sSubject = sMBText
'         sPattern = "^[ 0-9]+,[0-9]{2}( €)$"
'         If Match(sSubject, sPattern) = True Then
'            Return "Geldwert-Eingabe O.K."
'         Else
'            Return "Geldwert-Eingabe falsch!"
'         Endif ' Match(sSubject, sPattern) = True ?
'     Case "F"
'       sMBText = Replace(sMBText, "&H", "")
'       sMBText = Replace(sMBText, "&", "")
'       sSubject = sMBText
'       sPattern = "^[0-9a-fA-F]{6}$"
'       If Match(sSubject, sPattern) = True Then
'            mboxPointA.Text = "&H" & Upper(sMBText) & "&"
'            Return "FarbWert-Eingabe (hex) O.K."
'         Else
'            Return "Farbwert-Eingabe falsch!"
'       Endif ' Match(sSubject, sPattern) = True ?
'     Case "B"
'       sSubject = Replace(sMBText, " px", "")
'       sPattern = "^[0-9]{3}x[0-9]{3}$"
'       If Match(sSubject, sPattern) = True Then           
'            Return " Bildgrößenangabe O.K."
'         Else
'            Return "Bildgrößenangabe falsch!"
'       Endif ' Match(sSubject, sPattern) = True ?
'     Case "3D"
      ' sMBText = Replace(sMBText, "P(", "")
      ' sMBText = Replace(sMBText, ")", "")
      ' aMatrix = Split(sMBText, "|")
      ' Return "x = " & aMatrix[0] & ", y = " & aMatrix[1] & ", z = " & aMatrix[2]
'   End Select
' End ' MBGroupCheck(...)
' 
' Public Function Match(Subject As String, Pattern As String) As Boolean
'   Dim rRegex As Regexp
' ' Die Komponente gb.pcre (Perl Compatible Regular Expression) muss eingebunden sein
'   rRegex = New Regexp(Subject, Pattern)
'   If rRegex.Offset = -1 Then
'      Return False
'   Else
'      Return True
'   Endif ' rRegex.Offset = -1 
' End ' Match(...) As Boolean

'' Public Sub Button1_Click()
'   Dim i, j As Integer
'   
'  ' Print MB2Vector(mboxPointA.Text).ToString(True)
'   
'   voA = MB2Vector(mboxPointA.Text)  
'   voB = MB2Vector(mboxPointB.Text)    ' [0.94, 5.44, -6]
'   voC = MB2Vector(mboxPointC.Text)   ' [3, 33, 333]
'   
'   For i = 0 To voA.Count - 1
'     Print voA[i],
'   Next
'   
'   Print
'   Print voA.Count           ' 3
'   Print voA.Dot(voB)        ' 32 (Skalar-Produkt)
'   Print voA.ConjDot(voB)    ' 32 nur bei komplexen Koordinaten relevant
'   Print voA.Norm()          ' Betrag des Vektors
'   Print voA.ToString(True)  ' [ x y z ] 
'   
'   For i = 1 To 3
'     vV1[i - 1] = voB[i - 1] + voA[i - 1]
'   Next
'   
'   For i = 1 To 3
'     vV2[i - 1] = voB[i - 1] - voA[i - 1]
'   Next' Public Sub Button1_Click()
'   Dim i, j As Integer
'   
'  ' Print MB2Vector(mboxPointA.Text).ToString(True)
'   
'   voA = MB2Vector(mboxPointA.Text)  
'   voB = MB2Vector(mboxPointB.Text)    ' [0.94, 5.44, -6]
'   voC = MB2Vector(mboxPointC.Text)   ' [3, 33, 333]
'   
'   For i = 0 To voA.Count - 1
'     Print voA[i],
'   Next
'   
'   Print
'   Print voA.Count           ' 3
'   Print voA.Dot(voB)        ' 32 (Skalar-Produkt)
'   Print voA.ConjDot(voB)    ' 32 nur bei komplexen Koordinaten relevant
'   Print voA.Norm()          ' Betrag des Vektors
'   Print voA.ToString(True)  ' [ x y z ] 
'   
'   For i = 1 To 3
'     vV1[i - 1] = voB[i - 1] + voA[i - 1]
'   Next
'   
'   For i = 1 To 3
'     vV2[i - 1] = voB[i - 1] - voA[i - 1]
'   Next
'   
'   Print vV1.ToString(True)
'   Print vV2.ToString(True)
'   
'   Print VectorAS(voB, "+", voA).ToString(True)
'   Print VectorAS(voB, "-", voA).ToString(True)
'   
'   Print VectorAS(voB, "-", voA).Norm()
'   Print VectorAS(voB, "-", voA).Dot(VectorAS(voB, "+", voA))
' 
' End
'   
'   Print vV1.ToString(True)
'   Print vV2.ToString(True)
'   
'   Print VectorAS(voB, "+", voA).ToString(True)
'   Print VectorAS(voB, "-", voA).ToString(True)
'   
'   Print VectorAS(voB, "-", voA).Norm()
'   Print VectorAS(voB, "-", voA).Dot(VectorAS(voB, "+", voA))
' 
' End


