Zwei GUIs und eine Variable

  • Hallo, ich bin es wieder.
    Ich stehe vor folgendes Problem:

    Wenn im ersten GUI ein Häckchen gesetzt ist, soll im zweiten GUI das Label geändert werden.
    Erste GUI soll natürlich auch beendet werden.

    Folgendermaßen siehts bislang aus:

    Spoiler anzeigen
    [autoit]

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

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

    $Form1 = GUICreate("Form1", 165, 110, 200, 125)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 25, 15, 100, 15)
    $Button1 = GUICtrlCreateButton("Button1", 25, 50, 75, 25)
    GUISetState(@SW_SHOW)

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

    ;Global $Label1_Gui2, $Form2

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1

    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then ;Hier wird Häckchen gesetzt im Checkbox

    GUICtrlSetData($Label1_Gui2, "Check") ;Dann wird im Label in der 2. GUI "Check" geschrieben
    _gui2_1() ;2. Gui soll gestartet werden

    GUISetState(@SW_HIDE); -
    ExitLoop; 1. GUI soll geschlossen werden

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

    Else

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

    MsgBox(0, "", "Uncheck")

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

    EndIf


    EndSwitch
    WEnd

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

    Func _gui2_1()

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

    ;Global $Label1_Gui2, $Form2

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

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

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

    $Form2 = GUICreate("Form1", 250, 150, 200, 125)
    $Label1_Gui2 = GUICtrlCreateLabel("Hier sollte 'Check' stehen", 65, 30, 150, 35) ; hier sollte "Check" stehen, wenn im ersten GUI Häckchen gesetzt ist
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit


    EndSwitch
    WEnd
    EndFunc

    [/autoit]
  • Hier so gehts:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    $Form1 = GUICreate("Form1", 165, 110, 200, 125)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 25, 15, 100, 15)
    $Button1 = GUICtrlCreateButton("Button1", 25, 50, 75, 25)
    GUISetState(@SW_SHOW)

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

    $Form2 = GUICreate("Form1", 250, 150, 200, 125)
    $Label1_Gui2 = GUICtrlCreateLabel("Hier sollte 'Check' stehen", 65, 30, 150, 35)
    GUISetState(@SW_HIDE)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1

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

    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    GUICtrlSetData($Label1_Gui2, "Check")
    GUISetState(@SW_HIDE, $Form1)
    GUISetState(@SW_SHOW, $Form2)
    Else
    MsgBox(0, "", "Uncheck")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hallo,

    vielen dank Chip!

    Aus Neugier würde ich gern wissen, ob es möglich ist, es bei "meiner Struktur" (mit func etc.) zu belassen, und nur die Variablen irgendwie zu "impotieren" oder "globalisieren"?