Variablen in einer Schleife definieren?

  • Hey,

    ich habe im Quelltext z.B. folgenden Code:

    [autoit]

    $combo_0 = GUICtrlCreateCombo("", 480, 55, 150)
    $combo_1 = GUICtrlCreateCombo("", 480, 77, 150)
    $combo_2 = GUICtrlCreateCombo("", 480, 99, 150)
    $combo_3 = GUICtrlCreateCombo("", 480, 121, 150)
    $combo_4 = GUICtrlCreateCombo("", 480, 143, 150)
    ...

    [/autoit]

    Ich moechte jetzt den Code selber als Schleife aufschreiben (u.a. der besseren Uebersicht halber).

    Versucht habe ich schon etwas wie folgendes

    [autoit]

    $z = 55
    For $i = 0 To 5
    $combo_(hier muss irgendwie $i auftauchen, aber die Line wird dann nicht geparst) = GUICtrlCreateCombo("", 480, $z, 150)
    $z += 22
    Next

    [/autoit]

    Die Variablenzuweisung funktioniert so leider nicht, und ich habe auch keine Ahnung wie ich das realisieren soll.

    MfG

    Einmal editiert, zuletzt von pete_gzome (26. Dezember 2010 um 16:06)

  • Hallo,

    so vllt?

    [autoit]

    Dim $combo[5]

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

    For $i = 0 To 4
    For $j = 55 to 143 Step 22
    $combo[$i] = GUICtrlCreateCombo("", 480, 55+$j, 150)
    Next
    Next

    [/autoit]
  • Dann wuerde ich wohl ein Array benutzen.

    Koennte mir noch jemand sagen wie ich dann in der GUIGetMsg() loop ein Array benutze, um auf die Buttons im Array zuzugreifen?

    [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $combo[]
    ...
    EndSelect
    WEnd

    [/autoit]

    Da habe ich schon versucht eine Schleife reinzusetzen, kenne aber nicht die korrekte Syntax (wenn das ueberhaupt geht)

  • Hi,
    ich hab dir mal ein kleines Beispiel zu dem Thema gemacht.

    Spoiler anzeigen
    [autoit]

    $hGui = GUICreate("", 500, 500);GUI erzeugen
    GUISetState();sichtbar machen

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

    Dim $aControls[5];Eine Array mit 5 Plätzen erzeugen

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

    For $x = 0 To 4
    $aControls[$x] = GUICtrlCreateButton("Button" & $x + 1, $x * 60, 5, 50, 50);Den rückgabewert in die Array schreiben

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

    Next

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

    While 1
    $sMsg = GUIGetMsg()
    if $sMsg = -3 then Exit ;Wenn schließen gedrückt wurde
    For $x = 0 To 4
    if $sMsg = $aControls[$x] then MsgBox(0,"Button gedrückt","Du hast " & GUICtrlRead($aControls[$x]) & " gedrückt") ;Prüfen ob ein Button gedrückt wurde
    Next
    WEnd

    [/autoit]