E1M1 Posted December 29, 2013 Posted December 29, 2013 When I click on slider, it always overruns the right position. I was wondering if there's any more precise slider available. Like UDF or something.GUICreate("slider", 220, 100, 100, 200) $slider1 = GUICtrlCreateSlider(10, 10, 200, 30) GUICtrlSetLimit(-1, 200, 0) ; change min/max value GUICtrlSetData($slider1, 45) ; set cursor GUISetState() Do $msg = GUIGetMsg() Until $msg = -3 edited
JohnOne Posted December 29, 2013 Posted December 29, 2013 Looks fine to me AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
E1M1 Posted December 29, 2013 Author Posted December 29, 2013 I mean when you don't drag it but click it. edited
Moderators Melba23 Posted December 29, 2013 Moderators Posted December 29, 2013 E1M1,It is a feature/bug (you decide which) of the slider control - this article explains why. Perhaps someone versed in C might try to convert the suggested subclass procedure into AutoIt code. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
Moderators Melba23 Posted December 30, 2013 Moderators Posted December 30, 2013 E1M1,Does this get the thumb close enough to the mouse for you? #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> $iSlider_X = 10 $iSlider_W = 400 $iMargin = 8 ; This value works for me - you may have to adjust it $hGUI = GUICreate("Test", 500, 500) $cSlider = GUICtrlCreateSlider($iSlider_X, 10, $iSlider_W, 20) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $GUI_EVENT_PRIMARYDOWN $aInfo = GUIGetCursorInfo($hGUI) If $aInfo[4] = $cSlider Then $iX = ($aInfo[0] - $iSlider_X - $iMargin) * 100 / ($iSlider_W - ($iMargin * 2)) GUICtrlSetData($cSlider, $iX) EndIf EndSwitch WEndMuch simpler than subclassing. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
DatMCEyeBall Posted December 30, 2013 Posted December 30, 2013 (edited) And you should remember this when working with sliders: QSlider only provides integer ranges. Note that although QSlider handles very large numbers, it becomes difficult for users to use a slider accurately for very large ranges. (from here) Though the description is for a QSlider control, it applies to all sliders (that I have seen). Edited December 30, 2013 by DatMCEyeBall "Just be fred, all we gotta do, just be fred." -Vocaliod "That is a Hadouken. A KAMEHAMEHA would have taken him 13 days and 54 episodes to form." - Roden Hoxha @tabhooked Clock made of cursors ♣ Desktop Widgets ♣ Water Simulation
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