Hallo,
ich habe ein kleines Skript, wo 25 Buttons existieren.
5x5
$Button1 - $Button25
Kann ich eine Abfrage für alle allgemein machen?
Also das ich nicht für jeden Button ein "Case" schreiben muss
Mehrere Buttons gleichzeitig Abfragen -> SELBE Aktion
-
- [ offen ]
-
PokerFace -
25. Oktober 2009 um 20:56 -
Geschlossen -
Erledigt
-
-
zum Beispiel so:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit]
GUICreate('')
$Button1 = GUICtrlCreateButton("1",10,10,100,20)
$Button2 = GUICtrlCreateButton("2",10,30,100,20)
$Button3 = GUICtrlCreateButton("3",10,50,100,20)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1, $Button2, $Button3
MsgBox(0, '', "Test")
EndSwitch
WEnd -
- Offizieller Beitrag
Also das ich nicht für jeden Button ein "Case" schreiben muss
[autoit]
Wenn es überall dieselbe Funktion auslösen soll:Case $button1,$button2,$button3,....$button25
[/autoit]
; dein Code
Du solltest aber überlegen, Arrays einzusetzen. Dann kannst du das alles viel komfortabler in Schleifen abwickeln. -
-
- Offizieller Beitrag
Hier ein Bsp.:
[autoit]Local $aButton[25], $x = 10, $y = 20
[/autoit][autoit][/autoit][autoit]$gui = GUICreate('test')
[/autoit][autoit][/autoit][autoit]
For $i = 0 To UBound($aButton) -1
$aButton[$i] = GUICtrlCreateButton($i+1, $x, $y, 20, 20)
$x += 30
If $i = 12 Then
$x = 10
$y += 30
EndIf
Next
GUISetState()Do
[/autoit]
$msg = GUIGetMsg()
For $i = 0 To UBound($aButton) -1
If $aButton[$i] = $msg Then MsgBox(0, 'click', 'Button: ' & ControlGetText($gui, '', $msg))
Next
Until $msg = -3