GUICtrlCreateEdit live auslesen

  • Hallo, ich habe da ein kleines Problem, das ich irgendwie nicht gelöst bekomme...
    Ist eigentlich ganz einfach, doch irgendwie raff ichs nicht.

    Ich würde gerne die Anzahl der Zeilen in "GUICtrlCreateEdit" live auslesen können.
    Das Auslesen an sich klappt wunderbar, doch live kriege ich es nicht hin...
    Also so, dass man keinen Button o.ä. drücken muss, damit das Label aktualisiert wird, sondern direkt bei der Eingabe.

    Spoiler anzeigen
    [autoit]

    While 1
    Switch GUIGetMsg ()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Info ; das ist ein Button
    $_sEdit = GUICtrlRead ($sEdit)
    If $_sEdit = "" Then
    GUICtrlSetData ($sSplit, "Lines: 0") ; $sSplit ist ein Label
    Else
    $aSplit = StringSplit ($_sEdit, @LF)
    GUICtrlSetData ($sSplit, "Lines: " & $aSplit[0])
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Folgendes habe ich versucht, doch es klappt nicht.

    [autoit]

    While 1
    Switch GUIGetMsg ()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $sEdit ; Das GUICtrlCreateEdit
    $_sEdit = GUICtrlRead ($sEdit)
    If $_sEdit = "" Then
    GUICtrlSetData ($sSplit, "Lines: 0")
    Else
    $aSplit = StringSplit ($_sEdit, @LF)
    GUICtrlSetData ($sSplit, "Lines: " & $aSplit[0])
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    MfG

    Einmal editiert, zuletzt von $var (9. August 2011 um 15:09)

  • So z.B.:

    Spoiler anzeigen
    [autoit]

    Global $hGui = GUICreate("Edit", 320, 350)
    GUIRegisterMsg(0x0111, "_WM_COMMAND")

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

    Global $nEdit = GUICtrlCreateEdit("", 10, 10, 300, 300)
    Global $nLbl = GUICtrlCreateLabel("", 10, 320, 200, 20)

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

    GUISetState()

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

    While 1
    Switch GUIGetMsg ()
    Case -3
    Exit
    EndSwitch
    WEnd

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

    Func _WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    $nNotifyCode = BitShift($wParam, 16)
    $nID = BitAND($wParam, 0x0000FFFF)
    $hCtrl = $lParam

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

    If $nID = $nEdit Then
    GUICtrlSetData($nLbl, ControlCommand($hGui, "", "Edit1", "GetLineCount", "") & " Zeilen")
    EndIf
    EndFunc

    [/autoit]
  • So, wegen dem flackern musst halt noch Prüfen ob der Wert im Lable schon gesetzt wurde:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $sEdit = GUICtrlCreateEdit("", 8, 8, 473, 289)
    GUICtrlSetData(-1, "Edit1")
    $sSplit = GUICtrlCreateLabel("Label1", 40, 336, 100, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch

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

    $_sEdit = GUICtrlRead($sEdit)
    If $_sEdit = "" Then
    GUICtrlSetData($sSplit, "Lines: 0")
    Else
    $aSplit = StringSplit($_sEdit, @LF)
    GUICtrlSetData($sSplit, "Lines: " & $aSplit[0])
    EndIf
    WEnd

    [/autoit]


    Edit: funkey war schenller :cursing:

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.