Checkbox an / ausschalten

01/08/2013 16:11 *-Elsword_Hacker-*#1
Wollte fragen wie man eine checkbox an + ausschalten kann mit if $checkbox = 1 Then ... /if $Checkbox1 = 0 Then .... funktionniert bei Soundplay irgendwie nicht ... wer weis wies das geht bitte mal posten :) .
01/08/2013 18:24 BladeTiger12#2
Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 136, 64, 97, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Checkbox1
			_Check()

	EndSwitch
WEnd


Func _Check()
	If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
		MsgBox(0 , "" , "Checkbox1 an!")
	ElseIf GUICtrlRead($Checkbox1) = $GUI_UNCHECKED Then
		MsgBox(0 , "" , "Checkbox1 aus!")
	EndIf
EndFunc
01/08/2013 19:36 Achat#3
Quote:
Originally Posted by *-Elsword_Hacker-* View Post
$checkbox = 1 Then ... /if $Checkbox1 = 0 Then
Ja, die Checkbox...
Da geht kein einfaches, logisches True/False 1/0 Checked/Unchecked, sondern da sind die Werte 1 für Checked und 4 für Unchecked.

Code:
Func _CheckboxSetState(ByRef $ControlID, $iState)
	Switch $iState
		Case 0
			GUICtrlSetState($ControlID, 4)
		Case 1
			GUICtrlSetState($ControlID, 1)
	EndSwitch
EndFunc   ;==>_CheckboxSetState

Func _CheckboxGetState(ByRef $ControlID)
	Local $iState = GUICtrlRead($ControlID)
	Switch $iState
		Case 1
			Return 1
		Case 4
			Return 0
	EndSwitch
EndFunc   ;==>_CheckboxGetState
:)

MfG
01/08/2013 19:57 lolkop#4
das ganze lässt sich über ein array viel leichter lösen, und ermöglicht trotzdem nutzung von boolean werten

Code:
$state[2] = [4,1]
01/08/2013 22:52 Achat#5
Dafür muss man doch dann eine globale Variable setzen?

MfG
01/09/2013 06:14 lolkop#6
Quote:
Originally Posted by Achat View Post
Dafür muss man doch dann eine globale Variable setzen?

MfG
eigentlich nicht...

will man lediglich von 4 auf 0 kommen und anders herum, geht das ja einfach so:
Code:
Func _CheckboxSetState(ByRef $ControlID, $iState)
	Local $tmpState[2] = [4,1]
	GUICtrlSetState($ControlID, $tmpState[$iState])
EndFunc

Func _CheckboxGetState(ByRef $ControlID)
	If GUICtrlRead($ControlID)=4 Then Return 0
	Return 1
EndFunc
01/09/2013 14:04 *-Elsword_Hacker-*#7
Werde nach der Reihe mal austesten , danke für die Hilfen :) .


PS: Der 1. Post sieht am einfachsten aus ...