Funktion - mehrere Steuerelemente verstecken

  • Hi

    Erster Beitrag, erster Thread, erste Frage :rolleyes:

    Gibt es eigentlich eine Funktion, mit der man mehrere GUI-Steuerelemente gleichzeitig "hidden" kann?

    Ich kenn folgende: GUICtrlSetState($variable, $GUI_Hide) --> wobei $variable die Control ID des Steuerelements enthält.

    Was mach ich wenn ich mehrere SEs hab, aber nur eine variable und somit nur eine Funktion benutzen kann?

    Hoffe, ihr könnt mir helfen.

    Danke schon mal im Vorhinein :)

  • Hallo,

    danke dir für die prompte antwort.

    Ich hab jetzt mal ein Array gemacht: $ auebergabe = _ArrayCreate( $cht1, $cht2, $cht3, $cht4, $cht5, $cht6)

    Wie kann ich nun eine Schleife machen, die jedes Steuerelement, das in den Variablen des Arrays versteckt ist, hidden macht?

    Ich würd das mit einer For...Next machen aber kp wie ich das array hier einbinde.

    Wäre über eine Lösung oder Vorschlag sehr erfreut ;)

  • Bsp:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Dim $HIDDEN = False ; ZUm Status speichern.
    Dim $CTRL[5] ; Array für Controls
    #region - GUI Create
    GUICreate('hide :P')
    $ctrl[0] = GUICtrlCreateButton("nix",10,20,100,20)
    $ctrl[1] = GUICtrlCreateButton("nix",10,45,100,20)
    $ctrl[2] = GUICtrlCreateButton("nix",10,70,100,20)
    $ctrl[3] = GUICtrlCreateButton("nix",10,95,100,20)
    $ctrl[4] = GUICtrlCreateButton("nix",10,120,100,20)
    $ths = GUICtrlCreateButton("Toggle Hide/Show",10,170)
    GUISetState()
    #endregion

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

    #region - GUI SelectLoop
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $ths

    If $HIDDEN Then
    $state = $GUI_SHOW
    Else
    $state = $GUI_HIDE
    EndIf
    $HIDDEN = Not $HIDDEN

    For $i = 0 To UBound($ctrl)-1
    GUICtrlSetState($ctrl[$i],$state)
    Next
    EndSelect
    WEnd
    #endregion

    [/autoit]
    • Offizieller Beitrag

    Hier ein Beispiel:

    Spoiler anzeigen
    [autoit]

    ;GUI

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

    #include <GUIConstants.au3>

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

    #region ### START Koda GUI section ### Form=
    GUICreate("Form1", 219, 150, 193, 125)
    Global $button_A[3]
    $button_A[0] = GUICtrlCreateButton("Button1", 8, 8, 75, 25, 0)
    $button_A[1] = GUICtrlCreateButton("Button2", 8, 40, 75, 25, 0)
    $button_A[2] = GUICtrlCreateButton("Button3", 8, 72, 75, 25, 0)
    $Input1 = GUICtrlCreateInput("Input1", 88, 8, 121, 21)
    $Input2 = GUICtrlCreateInput("Input2", 88, 40, 121, 21)
    $Input3 = GUICtrlCreateInput("Input3", 88, 72, 121, 21)
    $hide_B = GUICtrlCreateButton("HIDE", 16, 112, 187, 25, 0)
    Global $CIDs[3] = [$Input1, $Input2, $Input3]
    Global $state = True
    GUISetState(@SW_SHOW)
    #endregion ### START Koda GUI section ### Form=

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hide_B
    If $state Then
    For $i = 0 To UBound($button_A) - 1
    GUICtrlSetState($button_A[$i], $GUI_HIDE)
    Next
    For $i = 0 To UBound($CIDs) - 1
    GUICtrlSetState($CIDs[$i], $GUI_DISABLE)
    Next
    Else
    For $i = 0 To UBound($button_A) - 1
    GUICtrlSetState($button_A[$i], $GUI_SHOW)
    Next
    For $i = 0 To UBound($CIDs) - 1
    GUICtrlSetState($CIDs[$i], $GUI_ENABLE)
    Next
    EndIf
    $state = Not $state
    EndSwitch
    WEnd

    [/autoit]

    Mega

  • Oh man wieder tausend Leute schneller und auch noch ausführlicher als ich :)

    Spoiler anzeigen
    [autoit]


    $auebergabe = _ArrayCreate( $cht1, $cht2, $cht3, $cht4, $cht5, $cht6)
    For $i = 0 To UBound($auebergabe)-1 Step 1
    If GUICtrlgetState($auebergabe[$i]) <> 96 Then
    GUICtrlSetState($auebergabe[$i], $GUI_HIDE)
    EndIf
    Next

    [/autoit]
  • Grüß euch :D

    Danke für eure Hilfe. Hat wunderbar geklappt mit der Schleife.

    PS: Tolles Forum --> Respekt :thumbup:

    Man schreibt sich

    Dezihex