Synatxproblem GuiCtrlRead - GuiCtrlSetData und Konsorten...

  • Hallöchen liebe AutoIT-Gemeinde :D

    Ich steh wieder Mal aufm Schlauch und bin auf der Suche nach jemandem der mir da höflicherweise runterhilft.

    Zuerst das Skript:

    Spoiler anzeigen
    [autoit]

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

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

    HotKeySet("{ENTER}", "_ENTER")

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

    #region ### START Koda GUI section ### Form=c:\program files (x86)\autoit3\koda\forms\gewinnermittlung.kxf
    $Form1_1 = GUICreate("Gewinnermittler", 825, 199, 201, 129)
    $Ermittler = GUICtrlCreateGroup("", 8, 0, 521, 193)
    $Button5 = GUICtrlCreateButton("Errechnen", 392, 152, 123, 25, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Rechner = GUICtrlCreateGroup("", 544, 0, 273, 193)
    $DISPLAY = GUICtrlCreateInput("", 560, 16, 241, 30, $ES_RIGHT)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $B_7 = GUICtrlCreateButton("7", 560, 64, 27, 25, 0)
    $B_8 = GUICtrlCreateButton("8", 594, 64, 27, 25, 0)
    $B_9 = GUICtrlCreateButton("9", 628, 64, 27, 25, 0)
    $B_4 = GUICtrlCreateButton("4", 560, 94, 27, 25, 0)
    $B_5 = GUICtrlCreateButton("5", 594, 94, 27, 25, 0)
    $B_6 = GUICtrlCreateButton("6", 628, 94, 27, 25, 0)
    $B_1 = GUICtrlCreateButton("1", 560, 124, 27, 25, 0)
    $B_2 = GUICtrlCreateButton("2", 594, 124, 27, 25, 0)
    $B_3 = GUICtrlCreateButton("3", 628, 124, 27, 25, 0)
    $B_C = GUICtrlCreateButton("C", 662, 64, 27, 25, 0)
    $B_PLUS = GUICtrlCreateButton("+", 662, 94, 27, 25, 0)
    $B_MINUS = GUICtrlCreateButton("-", 662, 124, 27, 25, 0)
    $B_NULL = GUICtrlCreateButton("0", 560, 154, 61, 25, 0)
    $B_KOMMA = GUICtrlCreateButton(",", 628, 154, 27, 25, 0)
    $B_GLEICH = GUICtrlCreateButton("=", 662, 154, 27, 25, 0)
    $Label1 = GUICtrlCreateLabel("Betriebseinnahmen:", 24, 24, 97, 17)
    $Label2 = GUICtrlCreateLabel("Privateinlagen:", 24, 56, 74, 17)
    $Label3 = GUICtrlCreateLabel("Vereinnahmte UsSt.:", 24, 88, 101, 17)
    $Label4 = GUICtrlCreateLabel("Gesamteinnahmen:", 24, 120, 95, 17)
    $Label5 = GUICtrlCreateLabel("Gewinn:", 24, 158, 43, 17)
    $Label6 = GUICtrlCreateLabel("Betriebsausgaben:", 278, 24, 92, 17)
    $Label7 = GUICtrlCreateLabel("Privatentnahmen:", 278, 56, 87, 17)
    $Label8 = GUICtrlCreateLabel("Abzuführende UsSt.:", 278, 88, 102, 17)
    $Label9 = GUICtrlCreateLabel("Gesamtausgaben:", 278, 120, 90, 17)
    $EINN_IN = GUICtrlCreateInput("", 136, 22, 123, 21)
    $EINLAGEN = GUICtrlCreateInput("", 136, 54, 123, 21)
    $UST_IN = GUICtrlCreateInput("", 136, 86, 123, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $EINN_GES = GUICtrlCreateInput("", 136, 118, 123, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $AUSG_IN = GUICtrlCreateInput("", 392, 22, 123, 21)
    $ENTNAHMEN = GUICtrlCreateInput("", 392, 54, 123, 21)
    $UST_OUT = GUICtrlCreateInput("", 392, 86, 123, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $AUSG_GES = GUICtrlCreateInput("", 392, 118, 123, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $GEWINN = GUICtrlCreateInput("", 136, 156, 123, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Button1 = GUICtrlCreateButton("Einahmen senden", 696, 64, 107, 25, 0)
    $Button2 = GUICtrlCreateButton("Ausgaben senden", 696, 94, 107, 25, 0)
    $Button3 = GUICtrlCreateButton("Einlagen senden", 696, 124, 107, 25, 0)
    $Button4 = GUICtrlCreateButton("Entnahmen senden", 696, 154, 107, 25, 0)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    Dim $rechnung
    While 1
    $Msg = GUIGetMsg()
    If $Msg = $GUI_EVENT_CLOSE Then Exit
    Select
    Case $Msg = $B_1
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & 1
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_2
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & 2
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_3
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & 3
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_4
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & 4
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_5
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & 5
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_6
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & 6
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_7
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & 7
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_8
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & 8
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_9
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & 9
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_NULL
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & "0"
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_PLUS
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & "+"
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_MINUS
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & "-"
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_KOMMA
    $edit = GUICtrlRead($DISPLAY)
    $string = $edit & ","
    GUICtrlSetData($DISPLAY, $string)
    Case $Msg = $B_C
    GUICtrlSetData($DISPLAY, "")
    Case $Msg = $B_GLEICH
    $edit = StringReplace(GUICtrlRead($DISPLAY), ",", ".")
    $ergebnis = Execute($edit)
    $bereinigt = StringReplace($ergebnis, ".", ",")
    GUICtrlSetData($DISPLAY, $bereinigt)

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

    EndSelect
    WEnd

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

    Func _ENTER()
    $edit = StringReplace(GUICtrlRead($DISPLAY), ",", ".")
    $ergebnis = Execute($edit)
    $bereinigt = StringReplace($ergebnis, ".", ",")
    GUICtrlSetData($DISPLAY, $bereinigt)
    EndFunc ;==>_ENTER

    [/autoit]

    Nachdem ich im "Taschenrechner" alles zusammengerechnet habe möchte ich den Inhalt des "Displays" via Button an den "Rechner" auf der linken Seite übermitteln..
    Nur krieg ich auf Teufel komm raus die Syntax nich voreinander...

    [autoit]

    Case $Button1
    $B1 = GUICtrlRead($Display)
    GUICtrlSetData($EINN_IN, $B1)

    [/autoit]


    Funzt nicht, da wird der Inhalt ausm Display sofort übernommen...

    Hülfe

    #EDIT: BTW: Wenn wer `ne Idee hat wie ich das ganze "Rechnergelump" ein wenig eleganter ( weniger Skript ) lösen kann bin ich auch dafür offen :D

    Gruß

    Mike

    Einmal editiert, zuletzt von Mike280399 (10. Oktober 2011 um 21:35)

  • Hallo Mike280399,

    dein Problem ist dass du Select ... Endselect benutzt da lautetdie Syntax

    [autoit]

    Case $msg = $Button1
    $B1 = GUICtrlRead($Display)
    GUICtrlSetData($EINN_IN, $B1)

    [/autoit]

    Etwas geschickter ist hier die Verwendung von Switch ... EndSwitch,

    mfg autoBert

  • Hallo ,

    zum 1. hast du vergessen den Rückgabewert von GuiCtrlRead in einer Variablen zu speichern. 2. benutzt Autoit den "." als Trennzeichen zwichen Vor- und Nachkomma. Mach das ganze also so:

    [autoit]

    Case $Msg = $Button5
    $UST1 = GUICtrlRead($EINN_IN) * 1.19
    GUICtrlSetData($UST_IN, $UST1)

    [/autoit]

    mfg autoBert

  • Scheint als hättest Du den Beitrag geschrieben als ich meinen vorherigen gelöscht hab weil ich`s hinbekommen habe :D
    Danke Dir dennoch vielmals :D

    Jaaa, manchmal ist es doch ganz gut wenn man zwischendrin Mal 5-10 Minuten Pause macht, dann fallen einem schon die einen oder anderen Schnitzer auf ;)

    Grüße

    Mike