Button in Schleife wie gewollt anordnen

  • Ist sicher nicht so das Problem, aber hänge leider :(...

    Ich habe das jetzt so ->


    [autoit]


    Dim $Button[6]
    For $z = 0 To 5
    $Button[$z] = GUICtrlCreateButton("", 10 + Mod($z, 2) * 300, 10 + $z * 85, 282, 80)
    Next

    [/autoit]


    Als Beispiel...^^ Jetzt sind die Button so angeordnet ->
    1__
    __2
    3__
    __4
    5__
    __6

    Ich möchte das aber so ->
    1 2
    3 4
    5 6

    Wie kriege ich das am Besten hin? Bin die ganze Zeit mit Modula und zusätzlichen Variablen, etc. am Rumspielen aber komme grade nicht drauf...^^
    Hoffe, mir kann eben einer behilflich sein :)


    LG

    Einmal editiert, zuletzt von Acanis (3. August 2010 um 19:17)

  • Hier mal zwei Möglichkeiten:

    Spoiler anzeigen
    [autoit]

    $iButtons = 7
    Dim $aButtons[$iButtons]
    $iCols = 2
    $iWidrh = 100
    $iHeight = 30
    $iSpaceX = 5
    $iSpaceY = 5
    $iRows = Ceiling($iButtons/$iCols)

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

    GUICreate("test")

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

    For $y = 0 To $iRows-1
    For $x = 0 To $iCols - 1
    $index = $y*$iCols+$x
    If $index >= $iButtons Then ExitLoop
    $aButtons[$index] = GUICtrlCreateButton("Button " & $index, 10 + $x * ($iWidrh+$iSpaceX) , 10 + $y * ($iHeight +$iSpaceY) , $iWidrh, $iHeight)
    Next
    Next

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

    GUISetState()
    Do
    Until GUIGetMsg()=-3

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

    ; -----------------------------------------

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

    $iButtons = 7
    Dim $aButtons[$iButtons]
    $iCols = 2
    $iWidrh = 100
    $iHeight = 30
    $iSpaceX = 5
    $iSpaceY = 5
    $iRows = Ceiling($iButtons/$iCols)

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

    GUICreate("test")

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

    For $index = 0 To $iButtons -1
    $x = Mod($index, $iCols)
    $y = Floor($index/$iCols)
    If $index >= $iButtons Then ExitLoop
    $aButtons[$index] = GUICtrlCreateButton("Button " & $index, 10 + $x * ($iWidrh+$iSpaceX) , 10 + $y * ($iHeight +$iSpaceY) , $iWidrh, $iHeight)
    Next

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

    GUISetState()
    Do
    Until GUIGetMsg()=-3

    [/autoit]
  • Uh, okey... Danke...^^ Also doch nur mit soviel Code realisierbar? -.-...
    Meinte, sowas mal in Kurz gesehen zu haben^^... Von BugFix oder so :p...

    Schade^^ Danke dir :D

  • Ich hab es nur sehr ausführlich gemacht ;) Wenn du es verstehst, kannst du es sicher kürzen.
    Es sind ja zwei verschiedene Beispiele und sehr viele Variablen. Diese kannst du an den entsprechenden Stellen direkt einsetzen ;) Dann wird der Code schon kürzer.

  • Oh ja, mit Int... *BAMM*^^... Super, danke ;D....
    Bleibe aber doch bei progandys Version, nun^^ Ist so schön anpassbar, falls man doch mal was verändert :p...

    Trotzdem super, danke ;D...

  • Das ist im Endeffekt doch das selbe :D Nur hat Oscar alle Variablen schön rausgekürzt.

  • Jaaaaaa, aber ich muss die Button 2x erstellen und auf jedem Button noch Bilder und Labels, etc...^^

    Ich nutze also die Koordinaten eh mehrmals, so, dass ich durch die gezwungene Umstellung auf deine Variante zwar viel mehr Text habe, aber es besser anpassbar im Gesamten ist ;D...


    LG