Durch For schleife mehrere Labels disablen

  • Moin,
    ich habe mehrere Labels:

    [autoit]

    $label40 = GUICtrlCreateLabel ; natürlich alles bewusst weggelassen ;)
    $label41 = GUICtrlCreateLabel
    $label42 = GUICtrlCreateLabel
    $label43 = GUICtrlCreateLabel
    $label44 = GUICtrlCreateLabel
    $label45 = GUICtrlCreateLabel
    $label46 = GUICtrlCreateLabel
    $label47 = GUICtrlCreateLabel
    $label48 = GUICtrlCreateLabel
    $label49 = GUICtrlCreateLabel
    $label50 = GUICtrlCreateLabel

    [/autoit]

    Meine Frage jetzt, wie kann ich alle diese Labels disablen?
    Immer mit GUISetState($Label40,$GUI_DISABLE) ist mir zu blöd, da ich allein deswegen scon 100 Zeilen Code hätte. Geht das, die auch durch eine For-Schleife zu disablen?
    Also

    [autoit]

    For $i=40 to 50
    GUISetState(...,$GUI_DISABLE)
    Next

    [/autoit]


    Ist das möglich?

    Einmal editiert, zuletzt von NoName (19. April 2008 um 16:56)

  • Kannst du so machen:

    [autoit]

    For $i = 40 To 50
    GUISetState(Eval('$label' & $i), $GUI_DISABLE)
    Next

    [/autoit]


    oder die Label-ID's in einem Array führen und dann dieses in einer Schleife durchlaufen.


    Funktioniert leider nicht. Und bitte keine Arrays^^
    Aber warum geht das denn nicht?

  • Das Eval ist für den Variablennamen. Also: Eval("label"& $i) Gibt "$Label"+Inhalt von $i . Der Code geht meiner Meinung nach nicht weil:
    1. Braucht man kein "$" bei Eval und 2. waren die Beispielnamen $label140...$label150
    =>

    [autoit]

    For $i = 40 To 50
    GUICtrlSetState(Eval("label"& $i), $GUI_DISABLE)
    Next

    [/autoit]


    Edit: Fehler bereinigt

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)

    Einmal editiert, zuletzt von Fast2 (19. April 2008 um 20:58)

  • Zitat

    und 2. waren die Beispielnamen $label140...$label150


    Habs bei mir ja angepasst.
    Aber auch deine Version ohn das "$" funktioniert nicht... ;(

  • a) es heßt LABEL und dann 40 bis 50, das war richtig.
    b) das $ Zeichen muss raus
    c) Es heißt GUICtrlSetState

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    #region - GUI Create
    GUICreate('df')
    $label40 = GUICtrlCreateLabel("HIadf",10,10)
    $label41 = GUICtrlCreateLabel("HIadf",10,30)
    $label42 = GUICtrlCreateLabel("HIadf",10,50)
    $label43 = GUICtrlCreateLabel("HIadf",10,70)
    $label44 = GUICtrlCreateLabel("HIadf",10,90)
    $label45 = GUICtrlCreateLabel("HIadf",10,110)
    $label46 = GUICtrlCreateLabel("HIadf",10,130)
    $label47 = GUICtrlCreateLabel("HIadf",10,150)
    $label48 = GUICtrlCreateLabel("HIadf",10,170)
    $label49 = GUICtrlCreateLabel("HIadf",10,190)
    $label50 = GUICtrlCreateLabel("HIadf",10,210)
    $btn = GUICtrlCreateButton("hi",100,10)
    GUISetState()
    #endregion

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

    #region - GUI SelectLoop
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $btn
    For $i = 40 To 50
    GUICtrlSetState(Eval("label"& $i), $GUI_DISABLE)
    Next

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

    EndSelect
    WEnd
    #endregion

    [/autoit]
  • Omg, hab garnicht gemerkt, dass Fast2 nur GUISetState drin hatte^^
    Ok, gelöst, danke

  • Hallo zusammen,

    ich mache das immer mit einem array

    mfg


    #include <GuiConstants.au3>

    global $List[20], $y=140

    $gui=GuiCreate("Input", 800,600,0,0,$WS_EX_TRANSPARENT)


    For $t=1 to 8
    $List[$t]=GUICtrlCreateLabel("111111111111111111111111111111111", 195, $y, 450, 35, BitOR($SS_SIMPLE, $SS_CENTER),$WS_EX_TRANSPARENT)
    $y=$y+40
    Next

    GUISetState()

    while 1
    For $l=1 to 8
    GUICtrlSetData($List[$l],$l)
    Next
    Sleep(1000)
    For $l=1 to 8
    GUICtrlSetData($List[$l],"11111111111111111111111111")
    Next
    Sleep(1000)
    WEnd