|
You last visited: Today at 10:40
Advertisement
Autoit alle Buttons deaktivieren/aktivieren
Discussion on Autoit alle Buttons deaktivieren/aktivieren within the AutoIt forum part of the Coders Den category.
10/18/2013, 16:09
|
#1
|
elite*gold: 0
Join Date: Aug 2013
Posts: 31
Received Thanks: 2
|
Autoit alle Buttons deaktivieren/aktivieren
Hey Leute,
Also nehmen wir an ich habe einen Button im GUI:
Code:
$Button1 = GUICtrlCreateButton("TEXT", 136, 16, 65, 49)
Den kann ich mit dem Befehl hier ausblenden:
Code:
GUICtrlSetState($Button1,$GUI_DISABLE)
Doch wenn mein Code nun so aussieht:
Code:
$Button1 = GUICtrlCreateButton("TEXT", 136, 16, 65, 49)
$Button2 = GUICtrlCreateButton("TEXT", 136, 166, 65, 469)
$Button3 = GUICtrlCreateButton("TEXT", 136, 16, 65, 496)
$Button4 = GUICtrlCreateButton("TEXT", 136, 56, 65, 49)
$Button5 = GUICtrlCreateButton("TEXT", 136, 16, 65, 49)
$Button6 = GUICtrlCreateButton("TEXT", 136, 5, 65, 4´89)
$Button7 = GUICtrlCreateButton("TEXT", 136, 10, 65, 49)
$Button8 = GUICtrlCreateButton("TEXT", 136, 167, 65, 49)
$Button9 = GUICtrlCreateButton("TEXT", 136, 16, 695, 49)
$Button10 = GUICtrlCreateButton("TEXT", 136, 168, 65, 49)
$Button11 = GUICtrlCreateButton("TEXT", 136, 16, 605, 49)
$Button12 = GUICtrlCreateButton("TEXT", 136, 16, 6ß5, 49)
Meine Frage nun, gibt es einen Befehl, der alle auf einmal deaktivieren und aktivieren kann?
Oder eine oder 2 Zeilen Code die die aktivvier und deaktivier Arbeit vereinfachen statt für jeden Button einzelnd GUICtrlSetState zu schreiben? Vielen Dank für die Hilfe!
Mit freundlichen Grüßen,
blame
|
|
|
10/18/2013, 16:28
|
#2
|
elite*gold: 0
Join Date: Aug 2013
Posts: 321
Received Thanks: 258
|
also soweit ich weiß nicht aber du kannst es einfach mit einer eigendener funktion machen
Code:
Func _AllButtons($Status)
GuiCtrlSetState($Button1,$Status) GuiCtrlSetState($Button2,$Status) GuiCtrlSetState($Button3,$Status ) GuiCtrlSetState($Button4,$Status) GuiCtrlSetState($Button5,$Status ) GuiCtrlSetState($Button6,$Status ) GuiCtrlSetState($Button7,$Status) GuiCtrlSetState($Button8,$Status) GuiCtrlSetState($Button9,$Status) GuiCtrlSetState($Button10,$Status) GuiCtrlSetState($Button11,$Status) GuiCtrlSetState($Button12,$Status)
endfunc
_AllButtons($GUI_DISABLE)
nur ein simpeles Beispiel
|
|
|
10/18/2013, 16:59
|
#3
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Oder du verfrachtest sie alle in einen Array und dann disablest du sie in einer For-Schleife
Code:
$aControls[10] = [$hButton1, $hButton2, $hButton3, $hButton4, $hButton5, $hButton6, $hButton7, $hButton8, $hButton9, $hButton10]
For $i = 0 To UBound($aControls) - 1
GUICtrlSetState($aControls[$i], $GUI_DISABLE)
Next
|
|
|
10/18/2013, 17:51
|
#4
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Dafür muss man die Controls nicht zwangsweise in ein Array packen.
Code:
$buttonsCount = 10
$enabled = False
Dim $buttonInfo[2][2] = [["Disable all Buttons", 64], ["Enable all Buttons", 128]]
GUICreate("Test", 250, (25 * ($buttonsCount + 1)) + (5 * ($buttonsCount + 2)))
$btn_EnableDisable = GUICtrlCreateButton($buttonInfo[$enabled][0], 5, 5, 240, 25)
$lbl_Start = GUICtrlCreateLabel("", 0, 0)
For $i = 1 To $buttonsCount
GUICtrlCreateButton("Button " & $i, 5, (($i + 1) * 5) + ($i * 25), 240, 25)
Next
$lbl_End = GUICtrlCreateLabel("", 0, 0)
GUISetState()
Do
$msg = GUIGetMsg()
If $msg == $btn_EnableDisable Then
$enabled = Not $enabled
GUICtrlSetData($btn_EnableDisable, $buttonInfo[$enabled][0])
For $control = $lbl_Start To $lbl_End
GUICtrlSetState($control, $buttonInfo[$enabled][1])
Next
EndIf
Until $msg == -3
Die einzelnen Controls bekommen kein Handle zugewiesen, sondern eine fortlaufende ID, anhand das Control identifizierbar ist.
In meinem Beispiel werden alle Buttons deaktiviert, die sich zwischen den Label $lbl_Start und $lbl_End befinden. Dabei spielt es keine Rolle, um wie viele es sich handelt. Deshalb habe ich auch den dynamischen Aufbau verwendet. Für Anfänger zugegeben nicht das beste Beispiel.
Bezogen auf den Aufbau des TE:
Code:
For $control = $Button1 To $Button12
GUICtrlSetState($control, $GUI_DISABLE)
Next
|
|
|
10/18/2013, 21:27
|
#5
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Oder auch noch auf eine andere Art:
Code:
Global Const $GUI_DISABLE = 128
$hGUI = GUICreate("", 500, 500, -1, -1)
$Button1 = GUICtrlCreateButton("TEXT", 0, 0, 65, 20)
$Button2 = GUICtrlCreateButton("TEXT", 20, 20, 65, 20)
$Button3 = GUICtrlCreateButton("TEXT", 40, 40, 65, 20)
$Button4 = GUICtrlCreateButton("TEXT", 60, 60, 65, 20)
$Button5 = GUICtrlCreateButton("TEXT", 80, 80, 65, 20)
$Button6 = GUICtrlCreateButton("TEXT", 100, 100, 65, 20)
$Button7 = GUICtrlCreateButton("TEXT", 120, 120, 65, 20)
$Button8 = GUICtrlCreateButton("TEXT", 140, 140, 65, 20)
$Button9 = GUICtrlCreateButton("TEXT", 160, 160, 65, 20)
$Button10 = GUICtrlCreateButton("TEXT", 180, 180, 65, 20)
$Button11 = GUICtrlCreateButton("TEXT", 200, 200, 65, 20)
$Button12 = GUICtrlCreateButton("TEXT", 220, 220, 65, 20)
GUISetState(@SW_SHOW)
For $i = 1 To 12
GUICtrlSetState(Execute("$Button" & $i), $GUI_DISABLE)
Next
While True;True = 1
$GUI = GUIGetMsg()
Switch $GUI
Case -3; Global Const $GUI_EVENT_CLOSE = -3
Exit
EndSwitch
WEnd
|
|
|
10/18/2013, 22:11
|
#6
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Fortlaufende Variablennamen zu verwenden ist aber schlecht, das sollte man nicht machen. Entsprechend findet man bei einem besseren Stiel keine Verwendung für dein Beispiel. Möchte man außerdem vorangehende Controls (z. B. Labels) auch deaktivieren, funktioniert dieses Beispiel nicht. Außer man würde einem Label ebenfalls eine $ButtonN Bezeichnung geben, was das ganze aber noch schlechter macht.
Man sollte schon das Beispiel von mir oder alpines verwenden.
|
|
|
10/18/2013, 22:39
|
#7
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Eher deins, ist auch viel schöner.
Hast schon Recht.
Habe mich jetzt aber nur auf Buttons konzentriert wegen dem Thread Titel.
|
|
|
 |
Similar Threads
|
Groupbox aktivieren und deaktivieren?
08/24/2014 - AutoIt - 12 Replies
Wie kann ich es machen, dass eine Groupbox erst nach einer bestimmten Sache aktiviert wird.
Beispiel:
If $Eingeloggt = True Then
Aktiviere GroupBox
:D
Das war nur nen Beispiel, also nicht kritisieren :p
|
[Suggestion] [Vorschlag]Titel Aktivieren oder Deaktivieren
08/25/2013 - Suggestions & Feedback - 18 Replies
Guten Morgen liebe Elitepvpers User,
Ich möchte euch mal fragen was ihr davon haltet wenn es so ein System gäbe womit man Seine Titel an und aus schalten kann. Sie sollten nicht verschwinden sondern nur ausgeblendet werden.
|
hotkey deaktivieren und aktivieren
05/31/2013 - AutoIt - 5 Replies
Hey Leute :D,
ich arbeite gerade an einem Metin2 Auto-Login Bot.
Ich hab ihn einfach so gescriptet, dass er Account und Passwort aus dem Input ausliest und ich dann einfach F9 im Hauptmenü drücken muss um mich einzuloggen.
Meine Frage ist jetzt ob ich den Hotkey erstmal deaktivieren kann und mit dem Button der Accountname und Passwort ausliest gleichzeitig den Hotkey aktivieren und ihn nach dem ersten Tastendruck wieder deaktivieren kann.
LG Tom :).
|
Wlan mit Taste Deaktivieren/Aktivieren?
03/30/2013 - Technical Support - 17 Replies
Hey,
Ich habe mal eine Frage. Wie kann ich mein Internet trennen? Ich habe ein Notebook. Mit der FN Taste geht es nicht, da öffnet sich nur das Programm wo ich es es dann trennen kann oder auch nicht.
Ich möchte wenn ich z.b. mal Vollbild Singleplayer Spiele spiele und mich jemand in Skype vollspammt einfach mal mein Internet trennen. Wie geht das? Ich möchte auch nicht immer unötig auf dem Desktop. Das nervt.
Mit freundlichem Gruß
(Vllt gibt es auch Programme?!)
|
Quests deaktivieren / aktivieren
05/18/2012 - Metin2 Private Server - 11 Replies
Nach Google und 2 Stunden SuFu finde ich nichts.
WIE kann man Quests bei einem eigenen Server aktivieren, und deaktivieren?
Profizocker94 hats geschafft also muss es hier auch jemand wissen.
MfG ZIM
|
All times are GMT +1. The time now is 10:41.
|
|