GUICtrlCreateInput "definieren/beschränken"

  • Hallo zusammen,

    ich habe die letzte Stunde damit verbracht mit Hilfe der SuFu und Google eine Lösung zu finden, leider erfolgslos.
    Ich weiss es gibt schon einige Themen, allerdings habe ich keins mit einer Einschränkung meines bestrebens gefunden :/

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $GUI = GUICreate("", 320, 50)
    Global $INPUT = GUICtrlCreateInput("", 10, 5, 300, 20)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $GUI)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Ich würde gerne diese InputCtrl wie folgt beschränken und im Falle einer Eingabe überwachen, sprich:

    Wenn das Feld ausgewählt worden ist für eine Eingabe, dann beschränke wie folgt:
    - erste Zeichen darf nur eine Zahl von 0-2 sein
    - zweite Zeichen darf nur eine Zahl von 0-9 sein
    - dann soll automatisch ein ":" hinzugefügt werden
    - dritte Zeichen darf nur eine Zahl von 0-6 sein
    - vierte Zeichen darf nur eine Zahl von 0-9 sein

    Herauskommen soll, man glaubt es kaum, eine Uhrzeiteingabe.

    Ist dies überhaupt möglich ohne ein eigenen Input über einen weiteren GUI zu schreiben?

    Grüße Yaerox

    Grüße Yaerox

    Grüne Hölle

    Einmal editiert, zuletzt von Yaerox (18. Oktober 2012 um 08:45)

  • Erstmal danke für die tollen Vorschläge :)

    Ich habe mich für die Variante der


    RestrictControlRegExp-UDF - Fehleingaben direkt verhindern, Eingabentypen festlegen
    ;)

    entschieden und bin hell auf begeistert. Wirklich großartige UDF, in diesem Sinne Danke an 'funkey' für den Verweis und selbstverständlich ein großes Danke an 'peethebee'.

    Hier mein Ergebnis:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include "RestrictControlRegExp.au3"

    [/autoit] [autoit][/autoit] [autoit]

    _RegEx_RestrictControl_setup (1) ; prepare for up to 20 Controls to restrict

    [/autoit] [autoit][/autoit] [autoit]

    Global $hGUI = GUICreate("", 120, 50)
    Global $hINPUT = GUICtrlCreateInput("", 10, 5, 100, 20, $ES_WANTRETURN)
    _RegEx_RestrictControl_add ($hINPUT, "^[012]{1}[0-9]{1}\:[0-6]{1}[0-9]{1}$", "13:37")

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $hGUI)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Grüße Yaerox

    Grüne Hölle