Rechentool GUI Fragen

  • Hallo alpines, aktuell sieht der normale Rechner gut aus, hab schon alles mögliche eingetippt und er hat alles abgefangen bisher, scheint so, als würde beides zusammen laufen.

    Anbei mal mein gesamter bisheriger Rechner, wollte mich jetzt gerade an den erweiterten Rechner setzen.

    Hab da schon mal den Wirkungsgrad zu einer ComboBox gemacht, um mir da die ganzen Abfragen zu sparen ^^

    Spoiler anzeigen
  • Hi elysium

    Hast Du mal die Realzeitprüfung der Inputfelder aus meinem Beitrag #38 geprüft ?

    (Du musst nur die Datei : _inputmask.au3 aus dem Anhang in das Verzeichnis kopieren)

    Damit würde dein Code wie folgt aussehen :

    Bei den Aufrufen von :

    _Inputmask_add(xxx, $iIM_POSITIVE_REAL, 0, "", 8, 2)

    stehen Dir folgende Konstanten zur Verfügung :

    $iIM_INTEGER = Input mask for INTEGERS only (..., -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, ...)

    $iIM_POSITIVE_INTEGER = Input mask for positive INTEGERS only (0, 1, 2, 3, 4, 5, ...)

    $iIM_REAL = Input mask for REAL numbers (..., -123.456, 0, 123.456, ...)

    $iIM_POSITIVE_REAL = Input mask for positive REAL numbers only (0, 23.562389, 123.456, ...)

    $iIM_ALPHANUMERIC = Input mask for Alphanumeric characters only (A-Za-z0-9)

    $iIM_ALPHA = Input mask for Alphabetic characters only (A-Za-z)

    Es können dann nur Werte eingegeben werden, die Du haben möchtest ;) !

    Falls Du also nur ganze positive Zahlen benötigst, dann nimmst Du $iIM_POSITIVE_INTEGER statt $iIM_POSITIVE_REAL

    Gruß Musashi

  • Hallo Musashi , ja, ich habe mir das angesehen aber ich tue mich gerade echt schwer damit, etwas zu ändern, weil eigentlich alles ganz gut läuft und ich, das bisherige, zum gröbsten Teil auch verstehe.

    Bei der Lösung oben, steht zum Beispiel bei $iIM_POSITIVE_INTEGER auch noch die 0 dabei, so das ich doch sowieso noch eine Abfrage bei der Formnestzahl benötige, da diese nicht 0 sein kann?!

    Mein normaler Rechner läuft ja jetzt ganz gut, bis auf das Problem mit dem Komma, diesen müsste ich in einen Punkt umwandeln zum rechnen.

    Wollte das jetzt so lösen, allerdings tut er nichts und ich brauch jetzt glaub auch mal eine Stunde Pause, seh den Wald vor lauter Bäumen nicht mehr.

    Code
                    ElseIf StringInStr(GUICtrlRead($Zykluszeit), ",") Then
                        StringReplace(GUICtrlRead($Zykluszeit), ",", ".")

    Meiner Logik nach, muss ich doch in dem Feld erst schauen, ob ein Komma vor kommt, falls ja, dann dieses Komma mit einem Punkt austauschen.

    Naja, jetzt erst mal ne Pause machen :part:

    • Offizieller Beitrag

    Meiner Logik nach, muss ich doch in dem Feld erst schauen, ob ein Komma vor kommt, falls ja, dann dieses Komma mit einem Punkt austauschen.

    Das macht StringReplace für dich. Wenn das gesuchte Zeichen nicht vorkommt, wird der Originalstring zurückgegeben.

    Einfach mal rumprobieren: ConsoleWrite(StringReplace('123.45', ',', '.') & @CRLF)