GUICtrlCreateEdit

  • Hi, ich hoffe es kann mir jemand helfen.

    Was will ich: Ich lese die com-schnittestelle mit $ComString = _CommGetString() aus und schreibe dies mittels ConsoleWrite($ComString) auf die autoit console. Nun würd ich diesen Console output gerne live in ein GUICtrlCreateEdit schreiben.
    hast du ne idee wie ich das am Besten angehe?

    Mein erster versuch war dieser:

    $edit=GUICtrlCreateEdit ("",340,10,680,480)
    $ComString = _CommGetString()
    ConsoleWrite($ComString)
    FileWrite("c876com.log",$ComString)
    GUICtrlSetData ($edit,FileRead ("c876com.log"))

    Das Problem hierbei ist, dass es flimmert da er den test immer und immer wieder als ganzes in das Edit schreibt und auch der Curser geht immer wieder auf anfang(oben) und ich muss immer bis zum ende scrolln.

    würd mich sehr über ne antwort freuden.

    Danke
    Magicmercury

  • ja, ich will es live mitschaun wenn das programm läuft. im go-mode von scite kann ich es eh auf der console mitschauen aber halt nicht wenn ich es per exe ausführe.

    Das mit der Zeit wäre eine Möglichkeit, wie sage ich aber dem edit feld das er nicht immer mit dem curser nach oben springen soll sondern ans Ende.

  • ja, ich will es live mitschaun wenn das programm läuft. im go-mode von scite kann ich es eh auf der console mitschauen aber halt nicht wenn ich es per exe ausführe.

    Das mit der Zeit wäre eine Möglichkeit, wie sage ich aber dem edit feld das er nicht immer mit dem curser nach oben springen soll sondern ans Ende.

    also ich habe mir mal ein Testcode geschrieben, um Dein Problem zu verstehen ...

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>

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

    GUICreate("Com -Test", 500, 500) ; Legt ein Dialogfenster an, das zentriert angezeigt wird
    GUISetState(@SW_SHOW) ; zeigt ein leeres Dialogfenster an

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

    $edit = GUICtrlCreateEdit("", 10, 10, 480, 480, $BS_MULTILINE)
    For $i = 1 To 40
    $ComString = "aaa" & String($i)
    ;ConsoleWrite($ComString)
    FileWrite("c876com.log", $ComString)
    GUICtrlSetData($edit, FileRead("c876com.log"))
    Next

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

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

    [/autoit]

    hier springt kein Cursor irgendwo hin, musst halt irgendwann mal das Editfenster löschen (zähle geschriebene Zeichen z.B.)

    wäre das ne Lösung?