Zeichenzählen von Edit feld

  • Hallo Zusammen,


    ich möcht gerne in meiner Gui eine Funktion einbauen, die die Zeichen aus dem Edit Feld zählt und in einem Feld in echtzeit wiedergibt. Hintergurnd ist, dass keine Eingabe bei mehr als 300 Zeichen akzepiert werden soll.


    Kennt ihr eine einfache Möglcihkeit?

  • while schleife und immer wieder zählen. wenn zu viel sind einfach die restlichen abschneiden.

  • Zähl in der MessageLoop jedes mal die Zeichen (StringLen) und änder die Anzeige des Labels nur, wenn die Länge eine andere ist, sonst flimmert das Label.

    Du kannst auch mit

    [autoit]

    GuiCtrlSetLimit

    [/autoit]

    die maximale Anzahl der Zeichen einstellen.


    EDIT: Ein Zeilenumbruch ist 2 Zeichen groß.

  • Hier. Dabei zählt er die Anzahl der Zeichen und zählt ein Zeilenumbruch nur als 1 Zeichen.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>

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

    GUICreate("")

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

    $edit=GUICtrlCreateEdit("", 50, 50)

    GUICtrlCreateLabel("Zeichen:", 0, 0)
    $counter=GUICtrlCreateLabel("0", 50, 0)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop

    $var = StringLen( StringStripCR(GuictrlRead($edit)))
    If GUICtrlRead($counter)<>$Var Then
    GUICtrlSetData($counter, $var)
    EndIf
    WEnd

    [/autoit]