Variablen/Werte von Funktion a in Funktion B übergeben

  • Hallo ihr Lieben,
    ich habe mal wieder eine kleine Verständnisfrage...

    Ich würde gerne für mehrer Fälle verschiedene Funktionen schreiben, beispielsweise klickt man auf Button 1 > Funktion 1 soll aufgerufen werden...soweit klar....nun habe ich zusätzlich eine Checkbox ind er Gui....hat der Anwender Checkbox1 angehakt und klickt danach Button1, soll das Ergebnis des Buttons + die Funktion der Checkbox angearbeitet werden...

    Mein kleines Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Form1", 562, 136, 223, 130)
    $Label1 = GUICtrlCreateLabel("Wert A", 8, 24, 37, 17)
    $Label2 = GUICtrlCreateLabel("Wert B", 8, 72, 37, 17)
    $Input1 = GUICtrlCreateInput("", 48, 16, 121, 21)
    $Input2 = GUICtrlCreateInput("", 48, 72, 121, 21)
    $Label3 = GUICtrlCreateLabel("Ergebnis", 200, 48, 45, 17)
    $Input3 = GUICtrlCreateInput("", 248, 48, 121, 21)

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

    $Button1 = GUICtrlCreateButton("Wert A + Wert B", 392, 8, 131, 49)
    $Button2 = GUICtrlCreateButton("....Ergebnis + Ergebnis", 392, 64, 131, 49)

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

    $Checkbox1 = GUICtrlCreateCheckbox("Ergebnis + 350?", 200, 80, 97, 17)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

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

    Case $Button1
    _Ergebnis()

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

    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _Ergebnis()
    $WertA = GUICtrlRead($Input1)
    $WertB = GUICtrlRead($Input2)

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

    $Ergebnis = $WertA + $WertB

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

    If GuiCtrlRead($CheckBox1) = 1 Then _AufrufFunktion2() Else GUICtrlSetData($Input3, $Ergebnis)
    EndFunc

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

    Func _AufrufFunktion2()
    $ErgebnisFunktion2 = $Ergebnis + 350 ;Variable aus Funktion 1 soll genutzt werden
    EndFunc

    [/autoit]

    Mir ist hierbei WICHTIG, dass Checkbox und Button jeweils in einer eigenen Funktion genutzt werden und ich die Variablen in beiden Funktionen nutzen bzw. in die nächste übergeben kann.
    Variablen als Global zu definieren ...daran dachte ich bereits....aber wie wird Ergebnis aus Funktion A in Funktion B weiterverwendet?

    Mein Beispiel oben ist dabei nur eine Beispielfunktion für mich zum besseren Verständnis :)
    VielenDanke schonmal für eure Hilfe.

    Einmal editiert, zuletzt von Rahl (4. Juni 2013 um 10:17)

  • Meinst du sowas wie mit Paramter ?

    Und

    [autoit]

    Return

    [/autoit]

    ?

    So z.B?

    Spoiler anzeigen
    [autoit]

    Func _Ergebnis()
    $WertA = GUICtrlRead($Input1)
    $WertB = GUICtrlRead($Input2)

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

    $Ergebnis = $WertA + $WertB

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

    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = 1 Then _AufrufFunktion2($Ergebnis) ;Ist so besser
    Else GUICtrlSetData($Input3, $Ergebnis)
    EndIf
    EndFunc

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

    Func _AufrufFunktion2($Ergebnis)
    $ErgebnisFunktion2 = $Ergebnis + 350 ;Variable aus Funktion 1 soll genutzt werden
    EndFunc

    [/autoit]

    Um Missverständnisse zu vermeiden, mein Name rührt vom Sternenbild und nicht vom Shop her :D


    Rainbow Dash :rock:

    "Das, wobei unsere Berechnungen versagen, nennen wir Zufall." (Albert Einstein)

    Einmal editiert, zuletzt von Orion (4. Juni 2013 um 09:55)

  • AH Super :) Genau das war es.....Bitte entschuldigt die einfachen Fragen, aber ich muss mich erst noch reinfinden :)

    Kann in von Funktion A in Funktion B auch mehrer Variablen übergeben? auch wenn ich diese evtl. nicht verwende?
    ...oder schmeißt er dann einen Error?

  • Kein Problem ;) Frag nur

    Ne geht schon

    Bsp.:

    Spoiler anzeigen
    [autoit]

    _Func1(Parameter1, Prameter2, Parameter3, ....) ;Aufruf _Func1
    Func _Func1(Parameter1, Parameter2,....) ;Die Func
    EndFunc

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

    Func _Func1($Hallo1, $Test2,$bla3,...);Du musst auch nicht die selben Namen verwenden
    ;Nur innerhalb der Func müssen es die gleichen sein
    EndFunc

    [/autoit]


    Hoffe das ist verständlich ^^

    [autoit]

    Func _AufrufFunktion2($bla)
    $ErgebnisFunktion2 = $bla + 350 ;Variable aus Funktion 1 soll genutzt werden
    EndFunc

    [/autoit]


    So nochmal anhand deiner Func, jetzt isses aber klar oder? :D

    Um Missverständnisse zu vermeiden, mein Name rührt vom Sternenbild und nicht vom Shop her :D


    Rainbow Dash :rock:

    "Das, wobei unsere Berechnungen versagen, nennen wir Zufall." (Albert Einstein)

    Einmal editiert, zuletzt von Orion (4. Juni 2013 um 10:18)