Button mehrfach belegen - einfache Lösung?

  • Hallo zusammen

    Ich stehe mal wieder vor einem Problemchen ;) Lösen kötte/kann ich es auch, aber ich habe das Gefühl, es muss doch irgendwie einfacher gehen :)

    Dann mal zu meinem Problem:

    Ich habe eine GUI, die hat 10 Hauptbuttons. Sagen wir Button_1, Button_2, Button_3 ... Button_10. Nun will ich bei jedem diesen Hauptbuttons noch 10 "Unter-Buttons" zuordnen. Das wären technisch gesehen 10 Haupt und 100 Unter-Buttons. Nun hatte ich die Idee, dass ich immer die selben "Unter-Buttons" benutzen könnte. Ich frage einfach vorher ab, welchen ich Haupt-Button ich gedrückt hatte.

    Als Beispiel:

    Ich drücke Button_1 und setze eine Variabel $_Status = 1, bei Button_2 setze ich $_Status = 2 usw. Nun kann ich Bei den "Unter-Buttons" abfragen, welchen Haupt-Button ich gedrückt habe.

    If $_Status = 1 Then

    Elseif $_Status = 2 Then

    usw.

    Nun habe ich aber pro Button 10 abfragen und es wird mit der Zeit recht unübersichtlich ;) Ich bin jetzt schon beim Script immer am hoch und runterfahren weil ich völlig den Überblich verliere :D Darum wollte ich fragen, gibt es da eine vernünftigere Lösung oder muss ich das wohl oder übel so machen?

    Für Tipps bin ich sehr Dankbar :)

    Gruss Beni

  • Ok ich versuche es mal ^^
    Ich hoffe ich habe es richtig verstanden

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    Dim $avArray[11][11]
    $hGui = GUICreate("Button test", 800, 800)
    $top = 0
    For $i = 0 To 10
    $left = 0
    $avArray[$i][0] = GUICtrlCreateButton("Button_"&$i, $left, $top)
    For $k = 1 To 10
    $left += 50
    $avArray[$i][$k] = GUICtrlCreateButton("SubButton_"&$i, $left, $top)
    Next
    $top += 50
    Next
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $avArray[0][0]
    For $i = 1 To UBound($avArray, 2) - 1
    GUICtrlSetState($avArray[0][$i], $GUI_HIDE)
    Next
    EndSwitch
    WEnd

    [/autoit]

    Du hast nurnoch ein Array mit den Button Control ID´s, wobei die $avArray[$i][0] Die HauptButtons sind, alle anderen Arrayitems sind dann die jeweiligen anderen Buttons.

    --EDIT-- Noch die Includes eingefügt und ein Beispiel zur Abfrage eingebaut

    --EDIT-- Ansonsten, wenn dir der Ansatz nicht gefällt, poste doch mal dein Script oder zumindest die wichtigen Teile, dann kann man vielleicht eine bessere Lösung finden

  • Hallo zusammen


    Danke schonmal für Eure Tipps, aber beides ist nicht so das, was ich meine.

    TheLuBu

    Deine Version ist sicher mal brauchbar, aber für mein Script kann ich das nicht einsetzen.

    funkey

    RadioButtons bringen mir auch nicht viel, ich habe dann immer noch das selbe Problem.


    Ich habe leider den Script nicht hier auf der Arbeit, aber ich poste mal den Teil rein, sobald ich dazu komme.

    Aber trotzdem, Danke Euch :)

  • So, ich habe mal den Script verkürzt und hoffe ich binde den hier richtig ein.

    Wie gesagt habe ich nun mit 5 Main_Buttons 100 Sub_Buttons...aber eben ziemlich unübersichtlich, je mehr man von denen macht. Daher die Frage, ob man das eleganter lösen kann :)

    Gruss Beni

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>
    #include "AVIConstants.au3"
    #include <WindowsConstants.au3>
    Global $_Main_Button_1, $_Main_Button_2, $_Main_Button_3, $_Main_Button_4, $_Main_Button_5
    Global $_Sub_Button_1, $_Sub_Button_2, $_Sub_Button_3, $_Sub_Button_4, $_Sub_Button_5
    Global $_Sub_Button_6, $_Sub_Button_7, $_Sub_Button_8, $_Sub_Button_9, $_Sub_Button_10
    Global $_Button_Status
    _Main()
    Func _Main()

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

    GUICreate("", 260, 160)

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

    $_Main_Button_1 = GUICtrlCreateButton("Main 1", 10, 10, 40, 25)
    $_Main_Button_2 = GUICtrlCreateButton("Main 2", 60, 10, 40, 25)
    $_Main_Button_3 = GUICtrlCreateButton("Main 3", 110, 10, 40, 25)
    $_Main_Button_4 = GUICtrlCreateButton("Main 4", 160, 10, 40, 25)
    $_Main_Button_5 = GUICtrlCreateButton("Main 5", 210, 10, 40, 25)

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

    $_Sub_Button_1 = GUICtrlCreateButton("Sub 1", 10, 40, 40, 25)
    $_Sub_Button_2 = GUICtrlCreateButton("Sub 2", 60, 40, 40, 25)
    $_Sub_Button_3 = GUICtrlCreateButton("Sub 3", 110, 40, 40, 25)
    $_Sub_Button_4 = GUICtrlCreateButton("Sub 4", 160, 40, 40, 25)
    $_Sub_Button_5 = GUICtrlCreateButton("Sub 5", 210, 40, 40, 25)
    $_Sub_Button_6 = GUICtrlCreateButton("Sub 6", 10, 70, 40, 25)
    $_Sub_Button_7 = GUICtrlCreateButton("Sub 7", 60, 70, 40, 25)
    $_Sub_Button_8 = GUICtrlCreateButton("Sub 8", 110, 70, 40, 25)
    $_Sub_Button_9 = GUICtrlCreateButton("Sub 9", 160, 70, 40, 25)
    $_Sub_Button_10 = GUICtrlCreateButton("Sub 10", 210, 70, 40, 25)

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

    $_Label_1 = GUICtrlCreateLabel("", 10, 120, 160, 40)

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

    GUISetState()
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    ExitLoop

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

    Case $_Main_Button_1

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

    $_Button_Status = 1

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

    Case $_Main_Button_2

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

    $_Button_Status = 2

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

    Case $_Main_Button_3

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

    $_Button_Status = 3

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

    Case $_Main_Button_4

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

    $_Button_Status = 4

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

    Case $_Main_Button_5

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

    $_Button_Status = 5

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

    Case $_Sub_Button_1

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

    If $_Button_Status = 1 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_1 & Sub_Button_1")

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

    ElseIf $_Button_Status = 2 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_2 & Sub_Button_1")

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

    ElseIf $_Button_Status = 3 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_3 & Sub_Button_1")

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

    ElseIf $_Button_Status = 4 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_4 & Sub_Button_1")

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

    ElseIf $_Button_Status = 5 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_5 & Sub_Button_1")

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

    EndIf

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

    Case $_Sub_Button_2

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

    If $_Button_Status = 1 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_1 & Sub_Button_2")

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

    ElseIf $_Button_Status = 2 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_2 & Sub_Button_2")

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

    ElseIf $_Button_Status = 3 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_3 & Sub_Button_2")

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

    ElseIf $_Button_Status = 4 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_4 & Sub_Button_2")

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

    ElseIf $_Button_Status = 5 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_5 & Sub_Button_2")

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

    EndIf

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

    Case $_Sub_Button_3

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

    If $_Button_Status = 1 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_1 & Sub_Button_3")

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

    ElseIf $_Button_Status = 2 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_2 & Sub_Button_3")

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

    ElseIf $_Button_Status = 3 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_3 & Sub_Button_3")

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

    ElseIf $_Button_Status = 4 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_4 & Sub_Button_3")

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

    ElseIf $_Button_Status = 5 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_5 & Sub_Button_3")

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

    EndIf

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

    Case $_Sub_Button_4

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

    If $_Button_Status = 1 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_1 & Sub_Button_4")

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

    ElseIf $_Button_Status = 2 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_2 & Sub_Button_4")

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

    ElseIf $_Button_Status = 3 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_3 & Sub_Button_4")

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

    ElseIf $_Button_Status = 4 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_4 & Sub_Button_4")

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

    ElseIf $_Button_Status = 5 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_5 & Sub_Button_4")

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

    EndIf

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

    Case $_Sub_Button_5

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

    If $_Button_Status = 1 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_1 & Sub_Button_5")

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

    ElseIf $_Button_Status = 2 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_2 & Sub_Button_5")

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

    ElseIf $_Button_Status = 3 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_3 & Sub_Button_5")

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

    ElseIf $_Button_Status = 4 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_4 & Sub_Button_5")

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

    ElseIf $_Button_Status = 5 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_5 & Sub_Button_5")

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

    EndIf

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

    Case $_Sub_Button_6

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

    If $_Button_Status = 1 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_1 & Sub_Button_6")

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

    ElseIf $_Button_Status = 2 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_2 & Sub_Button_6")

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

    ElseIf $_Button_Status = 3 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_3 & Sub_Button_6")

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

    ElseIf $_Button_Status = 4 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_4 & Sub_Button_6")

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

    ElseIf $_Button_Status = 5 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_5 & Sub_Button_6")

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

    EndIf

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

    Case $_Sub_Button_7

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

    If $_Button_Status = 1 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_1 & Sub_Button_7")

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

    ElseIf $_Button_Status = 2 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_2 & Sub_Button_7")

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

    ElseIf $_Button_Status = 3 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_3 & Sub_Button_7")

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

    ElseIf $_Button_Status = 4 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_4 & Sub_Button_7")

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

    ElseIf $_Button_Status = 5 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_5 & Sub_Button_7")

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

    EndIf

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

    Case $_Sub_Button_8

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

    If $_Button_Status = 1 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_1 & Sub_Button_8")

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

    ElseIf $_Button_Status = 2 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_2 & Sub_Button_8")

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

    ElseIf $_Button_Status = 3 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_3 & Sub_Button_8")

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

    ElseIf $_Button_Status = 4 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_4 & Sub_Button_8")

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

    ElseIf $_Button_Status = 5 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_5 & Sub_Button_8")

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

    EndIf

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

    Case $_Sub_Button_9

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

    If $_Button_Status = 1 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_1 & Sub_Button_9")

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

    ElseIf $_Button_Status = 2 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_2 & Sub_Button_9")

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

    ElseIf $_Button_Status = 3 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_3 & Sub_Button_9")

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

    ElseIf $_Button_Status = 4 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_4 & Sub_Button_9")

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

    ElseIf $_Button_Status = 5 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_5 & Sub_Button_9")

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

    EndIf

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

    Case $_Sub_Button_10

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

    If $_Button_Status = 1 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_1 & Sub_Button_10")

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

    ElseIf $_Button_Status = 2 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_2 & Sub_Button_10")

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

    ElseIf $_Button_Status = 3 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_3 & Sub_Button_10")

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

    ElseIf $_Button_Status = 4 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_4 & Sub_Button_10")

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

    ElseIf $_Button_Status = 5 Then

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

    GUICtrlSetData ($_Label_1, "Main_Button_5 & Sub_Button_10")

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

    EndIf

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

    Case Else
    EndSwitch
    WEnd
    GUIDelete()
    EndFunc ;==>_Main

    [/autoit]
  • Ich habe gesucht und gefunden ^^

    hier der _LINK

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Dim $array[19]
    $GUI = GUICreate("On-Event-Modus")

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

    For $i = 0 To 18
    $array[$i] = GUICtrlCreateButton('Button ' & $i + 1, 10, 10 + 20 * $i, 50, 18)
    Next

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

    GUISetState()
    While 1
    $nMsg = GUIGetMsg()

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

    Switch $nMsg
    Case $array[0] To $array[18]
    $hTmp = $nMsg - $array[0] + 1
    MsgBox(0, "Info", "Button " & $hTmp & " wurde gedrückt")
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Ich versuche es mal auf dein Script umzuschreiben

    Hier auf dein Script ( nur mit Arrays, sonst geht es nicht)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    Dim $avArray[11][11]
    $hGui = GUICreate("Button test", 800, 800)
    $top = 0
    For $i = 0 To 10
    $left = 0
    $avArray[$i][0] = GUICtrlCreateButton("Button_"&$i, $left, $top)
    For $k = 1 To 10
    $left += 50
    $avArray[$i][$k] = GUICtrlCreateButton("SubButton_"&$i, $left, $top)
    Next
    $top += 50
    Next
    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $avArray[0][0] TO $avArray[UBound($avArray) -1][UBound($avArray, 2) -1]
    $hTmp = $nMsg - $avArray[0][0]
    If IsInt($htmp/11) Then
    MsgBox(0, "Info", "Button " & $htmp/11+1 & " wurde gedrückt")
    Else
    $Split = Stringsplit($hTmp/11, ".")
    $Split2 = Stringsplit($Split[2], "")
    MsgBox(0, "Info", "Button " & $Split[1] & " SubButton "&Ceiling($Split2[1]&"."&$Split2[2]&$Split2[3]) &"wurde gedrückt")
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Hallo TheLuBu


    Das sieht ja schon vielversprechend aus :) Vielen Dank! Muss nur noch ein wenig anpassen wenn möglich. Hoffe ich krieg es dann so hin, dass ich immer nur die "aktiven" Buttons habe.

    So wie es bei Deinem Beispiel ist, sieht man ja immer alle. Aber das bring ich sicher noch hin, wenn ich mal ein Stündchen dran sitzen kann ;)

    Vielen Dank nochmals!!!


    Gruss Beni

  • Hier auch nur mit aktiven Buttons

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    Dim $avArray[10][11]
    $hGui = GUICreate("Button test", 500, 50)
    $lefthaupt = 0
    For $i = 0 To 9
    $left = 0
    $avArray[$i][0] = GUICtrlCreateButton("Button_"&$i, $lefthaupt, 0)
    For $k = 1 To 10
    $avArray[$i][$k] = GUICtrlCreateButton($i &" "&$k, $left, 25, 50)
    GUICtrlSetState($avArray[$i][$k], $GUI_HIDE)
    $left += 50
    Next
    $lefthaupt += 50
    Next
    GUISetState()
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $avArray[0][0] TO $avArray[UBound($avArray) -1][UBound($avArray, 2) -1]
    $hTmp = $nMsg - $avArray[0][0]
    If IsInt($htmp/11) Then
    For $i = 1 To UBound($avArray, 2) - 1
    GUICtrlSetState($avArray[$htmp/11][$i], $GUI_SHOW)
    Next
    For $i = 0 To UBound($avArray) -1
    If $i = $htmp/11 Then ContinueLoop
    For $k = 1 To UBound($avArray, 2) -1
    GUICtrlSetState($avArray[$i][$k], $GUI_HIDE)
    Next
    Next
    ;~ MsgBox(0, "Info", "Button " & $htmp/11+1 & " wurde gedrückt")
    Else
    $Split = Stringsplit($hTmp/11, ".")
    $Split2 = Stringsplit($Split[2], "")
    ;~ MsgBox(0, "Info", "Button " & $Split[1] & " SubButton "&Ceiling($Split2[1]&"."&$Split2[2]&$Split2[3]) &"wurde gedrückt")
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Huhu TheLuBu


    Sorry, ich hab erst jetzt wieder reingeschaut. Saugeil!!! :) Genau sowas hab ich gebraucht. Vielen lieben Dank nochmals :)

    Gruss Beni

  • Hallo Beni,

    hier mein Lösungsvorschlag:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Dim $aMain[10]
    Dim $aSub[10]
    $hGui = GUICreate("Button test", 910, 200)
    $top = 10
    $left = 5
    For $i = 0 To 9
    $aMain[$i] = GUICtrlCreateButton("MainButton_"&$i, $left, $top,85)
    $left += 90
    next
    $top = 40
    $left = 5
    For $i = 0 To 9
    $aSub[$i] = GUICtrlCreateButton("SubButton_"&$i, $left, $top,85)
    $left += 90
    GUICtrlSetState($aSub[$i], $GUI_DISABLE)
    next
    GUISetState()

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

    While 1
    $nMsg =GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $aMain[0] to $aMain[9]
    $iMain = $nMsg - $aMain[0]
    for $i = 0 to 9
    GUICtrlSetState($aMain[$i], $GUI_DISABLE)
    GUICtrlSetState($aSub[$i], $GUI_ENABLE)
    Next
    case $aSub[0] to $aSub[9]
    $iSub = $nMsg - $aSub[0]
    MsgBox(0,"Gedrückt wurde:","Main "& $iMain & " Sub " & $iSub)
    for $i = 0 to 9
    GUICtrlSetState($aMain[$i], $GUI_ENABLE)
    GUICtrlSetState($aSub[$i], $GUI_DISABLE)
    Next
    EndSwitch
    WEnd

    [/autoit]

    mfg autoBert