Benutzer-Werkzeuge

Webseiten-Werkzeuge


k16:k16.9:start

16.9 ValueBox

Wenn Sie in einem Programm nur einen Wert interaktiv einlesen wollen, dann stehen Ihnen mehrere Komponenten zur Verfügung. Eine von ihnen ist die Komponente ValueBox, deren Eigenschaften und Einsatz in diesem Kapitel beschrieben werden. Die eingegebenen Daten müssen Sie für die weitere Verwendung in Ihren Programmen – wie zum Beispiel die IP-Adressen – zum Teil selbst prüfen. Ungewöhnlich ist aber auch die Möglichkeit, eine Zeit von 7:90 einzugeben, was intern zu einer Zeitangabe von 8:30 Uhr führt. Sie können jeder Valuebox einen definierten Startwert zuweisen. Nur für die Typen Number und Currency wird die gesetzte Eigenschaft ValueBox.ReadOnly akzeptiert, aber für alle Typen kann man sie auslesen. Als Typen stehen Ihnen für die Valuebox sechs verschiedene Typen zur Verfügung:

  • Reelle Zahl (Number),
  • Datum (Date),
  • Zeit (Time),
  • Währung (Currency),
  • Datum/Zeit (DateTime),
  • IP-Adresse (IPAdress).

(1) Typ Number

Es werden in der Valuebox vom Type Number nur Ziffern und als Dezimaltrennzeichen das Komma akzeptiert. Ein Punkt wird sofort in ein Komma konvertiert, wenn man die deutsche Spracheinstellung gewählt hat.

(2) Typ Date

Ein markiertes Datum wird nur mit einem Doppel-Klick in die Anzeige übernommen. Das angezeigte Datum kann nicht editiert werden.

(3) Type Time

Die Zeit kann nach einem Klick auf das Uhr-Symbol aus einer Liste (Zeitintervall 30 Minuten) mit einem Doppel-Klick übernommen werden. In der Liste kann mit den Cursor-Tasten navigiert werden. Die Zeit können Sie auch direkt im Format hh:mm - jedoch mit führender Null - eingeben und anschließend können Sie diese Zeit auch editieren.

ACHTUNG: Sie können auch eine Zeit von 27:88 Uhr eingeben, weil sowohl für die Stunden als auch die Minuten ein Intervall von 00 bis 99 zulässig ist. Bei der Ausgabe wird dann aus 7:60 Uhr aber 8:00 Uhr. Aus der Eingabe 60:99 Uhr wird 13:39 Uhr (60h:24= 2d+12h; 99min:60=1h+39min. Damit werden 13h+39min als Restzeit im 24-Stunden-Intervall angezeigt! Ungewöhnlich – hat aber System.

(4) Typ Currency

Geldbeträge – in Deutschland in Euro – werden mit Euro und Cent mit dem Dezimalzeichen getrennt eingegeben. Als Dezimaltrennzeichen ist nur das Komma zulässig. Das Währungszeichen wird nur in der Valuebox angezeigt. Intern wird nur der Zahlenwert gespeichert. Sie können nur positive Währungsbeträge eingeben.

(5) Typ DateTime

Das Datum wählen Sie aus dem Kalender und die Zeit aus der angezeigten Liste mit einer Zeitdifferenz von 30 Minuten. Beide Werte werden mit einem Doppelklick in die Anzeige übernommen. Sie können die Werte in der Valuebox korrigieren. In der Valuebox vom Typ DateTime dürfen Sie – im Gegensatz zum Typ Time – nur die folgenden Intervalle für die Stunden 00..23 und Minuten 00..59 verwenden.

(6) IP-Adress im Format IPv4

Zur Eingabe setzen Sie den Corsor an die erste Position hinter die letzte Ziffer (Standard ist Null) und geben dann die Zahlen-Tripel blockweise ein. Zu den weiteren Eingabefeldern wechseln Sie mit den beiden Cursor-Tasten (> und <). In der Valuebox werden führende Nullen unterdrückt. Die Prüfung auf Korrektheit der IP-Adresse müssen Sie selbst vornehmen, weil die Eingaben der Zahlen-Tripel im Intervall von 0 bis 999 (!) für einen Block akzeptiert werden:

Public Sub btnIPAdress_Click()
  Dim aMatrix As String[]
  Dim iCount As Integer
  Dim sMessage As String
 
  txbDisplay.Clear
  txbDisplay.Alignment = Align.BottomRight
  txbDisplay.Text = valBoxIPAdress.Value  
  aMatrix = Split(valBoxIPAdress.Value, ".")
 
  For iCount = 0 To aMatrix.Max
    sMessage = "Die IP-Adresse ist im " & (icount + 1) & ". Block fehlerhaft (" & aMatrix[iCount] & ") !"
    If Val(aMatrix[iCount]) < 0 Or Val(aMatrix[iCount]) > 255 Then
       Message.Error(sMessage)
       valBoxIPAdress.SetFocus
    Endif
  Next ' iCount  
End ' IPAdress_Click

Projekt ValueBox
Abbildung 16.9.1: Valuebox – 6 Typen

Der Quelltext für ein Projekt zur Demonstration des Einsatzes der 6 Typen einer Valuebox wird hier vollständig angegeben:

' Gambas class file
 
Public Sub Form_Open()
 
  FMain.Center
  FMain.Resizable = False
  btnEnde.Cancel = True ' Programm-Ende mit ESC-Taste
 
  valBoxNumber.Type = valBoxNumber.Number
' valBoxNumber.ReadOnly = True
  valBoxDate.Type = valBoxDate.Date
  valBoxTime.Type = valBoxTime.Time
  valBoxCurrency.Type = valBoxCurrency.Currency
' valBoxCurrency.ReadOnly = True
  valBoxDateTime.Type = valBoxDateTime.DateTime
  valBoxIPAdress.Type = valBoxIPAdress.IPAddress
  valBoxIPAdress.Value = "192.168.100.11"
 
End ' Form_Open
 
Public Sub btnNumber_Click()
  txbDisplay.Clear
  txbDisplay.Alignment = Align.BottomRight
  txbDisplay.Text = valBoxNumber.Value
End ' Number_Click
 
Public Sub btnDate_Click()
  txbDisplay.Clear
  txbDisplay.Alignment = Align.BottomRight
  txbDisplay.Text = Format$(valBoxDate.Value, "dddd - dd.mm.yyyy")  
End ' Date_Click
 
Public Sub btnTime_Click()
  txbDisplay.Clear
  txbDisplay.Alignment = Align.BottomRight
  txbDisplay.Text = Format$(valBoxTime.Value, "hh:nn") & " Uhr" 
End ' Time_Click
 
Public Sub btnCurrency_Click()
  txbDisplay.Clear
  txbDisplay.Alignment = Align.BottomRight
  txbDisplay.Text = valBoxCurrency.Value & " Euro"
End ' Currency_Click
 
Public Sub btnDateTime_Click()
  txbDisplay.Clear
  txbDisplay.Alignment = Align.BottomRight
  txbDisplay.Text = Format$(valBoxDateTime.Value, "dd.mm.yyyy - hh:nn") & " Uhr"  
End ' DateTime_Click
 
Public Sub btnIPAdress_Click()
  Dim aMatrix As String[]
  Dim iCount As Integer
  Dim sMessage As String
 
  txbDisplay.Clear
  txbDisplay.Alignment = Align.BottomRight
  txbDisplay.Text = valBoxIPAdress.Value
 
  aMatrix = Split(valBoxIPAdress.Value, ".")
  For iCount = 0 To aMatrix.Max
    If Val(aMatrix[iCount]) < 0 Or Val(aMatrix[iCount]) > 255 Then
       sMessage = "IP-Adresse im " & (icount + 1) & ". Block fehlerhaft (" & aMatrix[iCount] & ") !"
       Message.Error(sMessage)
       valBoxIPAdress.SetFocus
    Endif
  Next ' iCount  
End ' IPAdress_Click
 
Public Sub btnEnde_Click()
  FMain.Close
End ' Close

Im Download-Bereich finden Sie das Projekt-Quellarchiv.

Download

Artikel und Projekte

Download

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k16/k16.9/start.txt · Zuletzt geändert: 19.02.2018 (Externe Bearbeitung)

Seiten-Werkzeuge