Einfügen in Edit trotz scrollen

  • Hallo,

    ich habe ein Problem mit meinem Edit-Control.
    Hab mal nen Beispielcode gemacht:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <GuiEdit.au3>

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

    GUICreate("My GUI edit")
    Global $cEdit = GUICtrlCreateEdit("", 20, 20, 200, 202, $ES_READONLY + $WS_VSCROLL)
    GUISetState()

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

    _GUICtrlEdit_AppendText($cEdit, @SEC)

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

    AdlibRegister("_Test", 200)

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

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

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

    Func _Test()
    ConsoleWrite(@SEC & @CRLF)
    _GUICtrlEdit_AppendText($cEdit, @CRLF & @SEC)
    EndFunc

    [/autoit]


    Das Problem ist, dass er nicht weiter einfügt, wenn ich den Scrollbalken bewege und nicht loslasse.
    Das Script stoppt dann einfach in der Zeit.
    Wie kann ich das verhindern?

    Einmal editiert, zuletzt von m-obi (12. Juli 2013 um 07:29)

    • Offizieller Beitrag

    Die Timer-UDF verwenden statt AdlibRegister:

    Spoiler anzeigen
    [autoit]


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiEdit.au3>
    #include <Timers.au3>
    #include <WindowsConstants.au3>

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

    Global $hGui = GUICreate("My GUI edit")
    Global $cEdit = GUICtrlCreateEdit("", 20, 20, 200, 202, $ES_READONLY + $WS_VSCROLL)
    GUISetState()

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

    _GUICtrlEdit_AppendText($cEdit, @SEC)

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

    _Timer_SetTimer($hGui, 200, "_Test")

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

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

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

    Func _Test($hWnd, $Msg, $iIDTimer, $dwTime)
    #forceref $hWnd, $Msg, $iIDTimer, $dwTime
    ConsoleWrite(@SEC & @CRLF)
    _GUICtrlEdit_AppendText($cEdit, @CRLF & @SEC)
    EndFunc ;==>_Test

    [/autoit]
  • Mit AdLibRegister war nur im Beispiel. Im eigentlichen Script läuft es mit TimerInit/-Diff. Aber ich werds mal damit Testen, wenn ich wieder an die Anlage ran kann.