Variable ausgeben

  • Hey Leute bin neu hier und habe folgende Frage:

    Ich habe dieses einfache Programm geschrieben.

    [autoit]

    #include <GUIConstants.au3>

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

    GUICreate("MeineGUI",718,308)
    GUISetState(@sw_show)

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

    $input=GUICtrlCreateInput("",17,280,486,18,-1,-1)
    $ok=GUICtrlCreateButton("OK",506,275,95,24,-1,-1)
    $bla=GUICtrlCreateButton("Bla",610,276,100,23,-1,-1)
    $output=GUICtrlCreateInput("",17,29,692,241,-1,-1)
    While 1
    $msg=GUIGetMsg()
    If $msg=$GUI_EVENT_CLOSE Then ExitLoop
    Select
    case $msg = $ok
    $output = GUICtrlCreateInput($input,17,29,692,241,-1,-1)
    EndSelect
    WEnd

    [/autoit]

    Der Script soll wenn ich Ok klicke das ausgeben in Output was ich in input eingegeben habe. Ich gebe zu es ist etwas verwirrent da ich zur ausgabe ein Input feld benutze ;)
    Naja wenn ich nun also OK klicke kommt eine 3. IMMER. Warum ist das so ? Also mal ganz allgemein wie gebe ich eine Variable aus ? Warum funktioniert mein Programm nicht und wenn ihr wisst wies
    geht bitte Lösungsvorschläge :D

    Danke im Vorraus

    clonker

  • Der gibt dir die Contol ID aus. Du kannst das so lösen:

    [autoit]

    #include <GUIConstants.au3>

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

    GUICreate("MeineGUI",718,308)
    GUISetState(@sw_show)

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

    $input=GUICtrlCreateInput("",17,280,486,18,-1,-1)
    $ok=GUICtrlCreateButton("OK",506,275,95,24,-1,-1)
    $bla=GUICtrlCreateButton("Bla",610,276,100,23,-1,-1)
    $output=GUICtrlCreateInput("",17,29,692,241,-1,-1)
    While 1
    $msg=GUIGetMsg()
    If $msg=$GUI_EVENT_CLOSE Then ExitLoop
    Select
    case $msg = $ok
    $output = GUICtrlCreateInput(GUICtrlRead($input),17,29,692,241,-1,-1)
    EndSelect
    WEnd

    [/autoit]

    Außerdem würde ich

    [autoit]

    GUICTRLSetData

    [/autoit]

    anstatt dem 2. mal GUICTRLCreateInput nehmen

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • WoW ! Danke für die schnelle Antwort ! :)
    Das GUICtrlRead hat mir gefehlt !
    Habe ich das Richtig verstanden das
    GUICTRLSetData einfach den Wert ändert in unserem Fall den Text
    und ich mit
    GUICtrlCreateInput das ganze Ding einfach mit neuem Text neu erstellt habe ?

    Nochmal vielen Dank !

    clonker

  • ja genau..wenn du es übersetzt wirst du auch merken das Guictrlsetdata bedeutet, dass einem control Daten zugewiesen werden (in dem fall erscheint der Text in der input) GuiCtrlCreateInput, würde bedeuten, dass du ein komplett neues Input erstellst (von Create)

  • Genau. Wenn du z.B. was neues in der nächsten Zeile hinzufügen möchtest, kannst du das so machen:

    [autoit]

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

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

    GUICreate("MeineGUI",718,308)
    GUISetState(@sw_show)

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

    $input=GUICtrlCreateInput("",17,280,486,18,-1,-1)
    $ok=GUICtrlCreateButton("OK",506,275,95,24,-1,-1)
    $bla=GUICtrlCreateButton("Bla",610,276,100,23,-1,-1)
    $output=GUICtrlCreateInput("",17,29,692,241,$ES_MULTILINE)
    While 1
    $msg=GUIGetMsg()
    If $msg=$GUI_EVENT_CLOSE Then ExitLoop
    Select
    case $msg = $ok
    If GUICtrlRead($output) = "" Then
    GUICtrlSetData($output,GUICtrlRead($input))
    Else
    GUICtrlSetData($output,GUICtrlRead($output) & @CRLF & GUICtrlRead($input))
    EndIf
    EndSelect
    WEnd

    [/autoit]

    Es ist jedoch geschickter das mit einem Edit Feld zu machen.

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"