PUBLIC bAbbruch AS Boolean
PUBLIC bTimeOut AS Boolean
PUBLIC aEingabeAlphabet AS NEW String[]

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PUBLIC SUB Form_Open() 
  FMain.Center
  FMain.Border = 1
  bAbbruch = FALSE
  bTimeOut = FALSE
  
  aEingabeAlphabet = [".", "E", "e", "+", "-", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PUBLIC SUB btnWerteTabelleAusgeben_Click()
  DIM iCount, iCount2 AS Integer
  DIM fArgumentAnfang AS Float
  DIM fArgumentEnde AS Float
  DIM fArgumentDeltaX AS Float
  DIM fArgument_x AS Float
  DIM fFunktionswert_y AS Float
  DIM fDeltaX AS Float
  DIM fDifferenzenquotient AS Float
  DIM sWerteZeile AS String
  
  '--- Kontrolle der Eingaben --------------------------------------------
  TRY fArgumentAnfang = CFloat(txb_ArgumentAnfang.Text)
  IF ERROR THEN 
     Message.Error("Eingabefehler beim Argument x_Anfang!")
     txb_ArgumentAnfang.SetFocus
     RETURN 
  ENDIF ' ERROR ArgumentAnfang
  '-----------------------------------------------------------------------
  TRY fArgumentEnde = CFloat(txb_ArgumentEnde.Text)
  IF ERROR THEN 
     Message.Error("Eingabefehler beim Argument x_Ende!")
     txb_ArgumentEnde.SetFocus
     RETURN 
  ENDIF ' ERROR ArgumentEnde
  '-----------------------------------------------------------------------  
  IF fArgumentEnde <= fArgumentAnfang THEN 
     Message.Error("Eingabefehler: Argument_Ende <= Argument_Anfang!")
     txb_ArgumentEnde.Text = ""
     txb_ArgumentEnde.SetFocus
     RETURN 
  ENDIF ' Bereichprüfung  
  '-----------------------------------------------------------------------
  TRY fArgumentDeltaX = CFloat(txb_ArgumentDeltaX.Text) 
  IF ERROR THEN 
     Message.Error("Eingabefehler beim Argument Delta_x!")
     txb_ArgumentDeltaX.SetFocus
     RETURN 
  ENDIF ' ERROR ArgumentDeltaX
  '-----------------------------------------------------------------------
  IF fArgumentDeltaX < 0.0001 THEN ' Minimum: 0.0001
     Message.Warning("Der Wert für Delta_x ist zu klein. Minimum = +0.0001!")
     txb_ArgumentDeltaX.SetFocus
     RETURN 
  ENDIF ' ArgumentDeltaX < 0.0001
  '-----------------------------------------------------------------------
   
  bAbbruch = FALSE
  
  bTimeOut = FALSE
  Timer1.Delay = 5 * 60 * 1000 ' Nach 5 Minuten wird abgeschaltet ...
  Timer1.Start
   
  fArgument_x = fArgumentAnfang
  iCount = 1
  fDifferenzenquotient = 0
  fDeltaX = 0.00001
  sWerteZeile = ""
  txaWerteTabelle.Clear
    
  btnWertetabelleAusgeben.Mouse = Mouse.Wait
  
  WHILE fArgument_x <= fArgumentEnde
  ....
  
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PUBLIC FUNCTION EingabePruefung(sEingabe AS String) AS String
  DIM iCount AS Integer
  DIM sStelle AS String
  
  ' Scanner
  ' Für jedes Eingabezeichen wird geprüft, ob es im EingabeAlphabet vorhanden ist
  FOR iCount = 0 TO Len(sEingabe) - 1
      sStelle = Mid(sEingabe, Len(sEingabe) - iCount, 1)
      IF NOT aEingabeAlphabet.Exist(sStelle) THEN 
         Message.Error("Fehler: " & Chr(10) & "Zeichen nicht im Eingabe-Alphabet!")
         LAST.SetFocus  
         BREAK
      ENDIF ' Zeichen im Eingabe-Alphabet
  NEXT ' iCount
  RETURN "fehlerfrei"
  
END ' FUNCTION EingabePruefung(sEingabe)

PUBLIC SUB txb_ArgumentAnfang_Change()
  IF EingabePruefung(txb_ArgumentAnfang.Text) = "fehlerfrei" THEN Reset()
END ' ArgumentAnfang_Change

PUBLIC SUB txb_ArgumentEnde_Change()
  IF EingabePruefung(txb_ArgumentEnde.Text) = "fehlerfrei" THEN Reset()
END ' ArgumentEnde_Change

PUBLIC SUB txb_ArgumentDeltaX_Change()
  IF EingabePruefung(txb_ArgumentDeltaX.Text) = "fehlerfrei" THEN Reset()
END ' ArgumentDeltaX_Change


  ' Navigation durch die Anzeige im GridView mit 6 Möglichkeiten:
  ' Pos1-Taste ---> 1. Zeile
  ' Ende-Taste ---> letzte Zeile
  ' Bild-nach-unten-Taste ---> letzte Zeile im GridView
  ' Bild-nach-oben-Taste  ---> erste Zeile im GridView
  ' Pfeil-nach-oben-Taste  ---> Scrollen nach oben
  ' Pfeil-nach-unten-Taste ---> Scrollen nach unten