Textchange Funktion?

  • Hallo Leute,
    gibt es eigentlich so ne Art "textchange", das heißt man ändert den Text bzw. Zahl in Inputbox1 und ohne Enter oder Buttondruck ändert sich Inputbox2?
    :?:

    Danke.

  • Natürlich geht das.^^

    [autoit]


    #include <StaticConstants.au3>

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

    $hWnd = GUICreate("Live-Aktualisierung", 300, 300)
    $cText = GUICtrlCreateLabel("Template", 0, 0, 300, 150, $SS_CENTER + $SS_CENTERIMAGE)
    $cName = GUICtrlCreateInput("", 0 + 50, 150 + 50 + 15, 200, 20, $SS_CENTER)

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

    GUISetState()

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

    Local $sCurrent

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

    While True
    Switch GUIGetMsg()
    Case -3 ;GUI_EVENT_CLOSE
    Exit
    EndSwitch

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

    If $sCurrent <> GUICtrlRead($cName) Then
    GUICtrlSetData($cText, "Mein Hund heißt " & GUICtrlRead($cName) & "!")
    $sCurrent = GUICtrlRead($cName)
    EndIf
    WEnd

    [/autoit]

    lg

  • Das lässt sich mit WM_COMMAND ein wenig effizienter lösen ;).

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <EditConstants.au3>
    #include <Winapi.au3>

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

    $hGUI = GUICreate("Test", 200, 100)
    $cInput1 = GUICtrlCreateInput("", 5, 5, 190, 25)
    $cInput2 = GUICtrlCreateInput("", 5, 35, 190, 25)
    GUISetState()

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

    GUIRegisterMsg($WM_COMMAND, "_WM_COMMAND")

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

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

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

    Func _WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    If $WM_COMMAND = $iMsg Then
    Switch $hWnd
    Case $hGUI
    Switch BitAND($wParam, 0xFFFF)
    Case $cInput1
    Switch BitShift($wParam, 16)
    Case $EN_CHANGE
    GUICtrlSetData($cInput2, GUICtrlRead($cInput1))
    EndSwitch
    EndSwitch
    EndSwitch
    EndIf
    EndFunc ;==>_WM_COMMAND

    [/autoit]