IKilledBambi Posted November 8, 2008 Posted November 8, 2008 (edited) Can I get an example of how to register when the slider changes to lets say 6. #include <WindowsConstants.au3> #include <SliderConstants.au3> #include <GUIConstantsEx.au3> #include <GUIConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 633, 447, -1, -1, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS), 0) $Slider1 = GUICtrlCreateSlider(104, 368, 145, 33, BitOR($TBS_AUTOTICKS,$TBS_FIXEDLENGTH), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE)) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Form1 Case $Form1 Case $Form1 Case $Form1 Case $Slider1 EndSwitch WEnd I tried Case $Slider1 If $Slider1 = 6 Then MsgBox(1, "Number", "SIX!") Else MsgBox(1, "Number", "1") EndSwitch WEnd but no go Edited November 8, 2008 by IKilledBambi
Andreik Posted November 8, 2008 Posted November 8, 2008 To read the value from slider use GuiCtrlRead(): #include <WindowsConstants.au3> #include <SliderConstants.au3> #include <GUIConstantsEx.au3> #include <GUIConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 633, 447, -1, -1, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS), 0) $Slider1 = GUICtrlCreateSlider(104, 368, 145, 33, BitOR($TBS_AUTOTICKS,$TBS_FIXEDLENGTH), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE)) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Slider1 MsgBox(0,"SLIDER",GUICtrlRead($Slider1)) EndSwitch WEnd
Pain Posted November 8, 2008 Posted November 8, 2008 I think this is more what you are looking for. WM_HSCROLL will make it update in realtime. #include <WindowsConstants.au3> #include <SliderConstants.au3> #include <GUIConstantsEx.au3> #include <GUIConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 633, 447, -1, -1, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS), 0) $Slider1 = GUICtrlCreateSlider(104, 368, 145, 33, BitOR($TBS_AUTOTICKS,$TBS_FIXEDLENGTH), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE)) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### GUIRegisterMsg($WM_HSCROLL , "WM_HSCROLL") While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit ;~ Case $Slider1 ;~ MsgBox(0,"SLIDER",GUICtrlRead($Slider1)) EndSwitch WEnd Func WM_HSCROLL($hWnd, $iMsg, $iwParam, $ilParam) If GUICtrlRead($Slider1) = 6 Then MsgBox(0, "", "SIX") EndIf EndFunc
IKilledBambi Posted November 8, 2008 Author Posted November 8, 2008 (edited) Thanks, now my question is how do I control how many options there are? I think I'm on the track with TBM_SETRANGE but I'm not sure how to even implement this. Edited November 8, 2008 by IKilledBambi
Pain Posted November 8, 2008 Posted November 8, 2008 $slider1 = GUICtrlCreateSlider (10,10,200,20) GUICtrlSetLimit(-1,200,0) ; change min/max value
Andreik Posted November 8, 2008 Posted November 8, 2008 Or like this: #Include <GuiSlider.au3> $GUI = GUICreate("Slider",100,100) $SLIDER = _GUICtrlSlider_Create($GUI,10,30,80,40) _GUICtrlSlider_SetRange($SLIDER,0,10) _GUICtrlSlider_SetTicFreq($SLIDER,2) GUISetState(@SW_SHOW,$GUI) While 1 $MSG = GUIGetMsg() If $MSG = -3 Then Exit TrayTip("SLIDER",_GUICtrlSlider_GetPos($SLIDER),1) Sleep(15) WEnd The min value is 0 and the max value is 10. The slider is marked on the interval 0 - 10 after 2 ticks.
IKilledBambi Posted November 8, 2008 Author Posted November 8, 2008 (edited) Thanks both answers were needed Now my question, is there a better way to do it andreik that way is just to resource taxing. Can I make it only call that function if the slider is changed? Edited November 8, 2008 by IKilledBambi
Andreik Posted November 8, 2008 Posted November 8, 2008 Thanks both answers were needed Now my question, is there a better way to do it andreik that way is just to resource taxing. Can I make it only call that function if the slider is changed? Like here: #Include <GuiSlider.au3> $GUI = GUICreate("Slider",100,100) $SLIDER = GUICtrlCreateSlider(10,30,80,40) _GUICtrlSlider_SetRange($SLIDER,0,10) _GUICtrlSlider_SetTicFreq($SLIDER,2) GUISetState(@SW_SHOW,$GUI) While 1 $MSG = GUIGetMsg() If $MSG = -3 Then Exit ElseIf $MSG = $SLIDER Then MsgBox(0,"VALUE",_GUICtrlSlider_GetPos($SLIDER),1) EndIf Sleep(15) WEnd
Valuater Posted November 8, 2008 Posted November 8, 2008 Another look.... #include <GuiConstantsEx.au3> #include <GuiSlider.au3> ; Create GUI GUICreate("Slider Get Tool Tips", 400, 296) $hSlider = GUICtrlCreateSlider(2, 2, 396, 20, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS, $TBS_ENABLESELRANGE)) GUISetState() ; Set Tool Tips $hWndTT = _GUICtrlSlider_GetToolTips($hSlider) _GUICtrlSlider_SetToolTips($hSlider, $hWndTT) ; Loop until user exits Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() 8)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now