kiffab Posted July 14, 2012 Share Posted July 14, 2012 Hi Guys Building an app in work and need some expert assistance. I have a GUI with a start/stop button. When I click it, it executes a function. This function reads a log and returns a status. I am using: case $my_button MyFunction() AdlibRegister("My Function here", $interval) $interval is just a refresh time like 10 secs, 20 secs etc. If clicked a second time, I want it to STOP doing what it's doing. I'm not sure how to do this. The alternative is to just exit but I'd rather stop and remain in app. Any help appreciated. Thanks. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted July 14, 2012 Moderators Share Posted July 14, 2012 kiffab, Perhaps like this: #include <GUIConstantsEx.au3> $hGUI = GUICreate("Test", 500, 500) $cButton = GUICtrlCreateButton("Run", 10, 10, 80, 30) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $cButton Switch GUICtrlRead($cButton) Case "Run" MsgBox(0, "Hi", "Function Running") AdlibRegister("_Run", 1000) GUICtrlSetData($cButton, "Stop") Case "Stop" MsgBox(0, "Hi", "Function Ended") AdlibUnRegister("_Run") GUICtrlSetData($cButton, "Run") EndSwitch EndSwitch WEnd Func _Run() ConsoleWrite("Running at " & @SEC & @CRLF) EndFunc Any help? 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 Link to comment Share on other sites More sharing options...
kiffab Posted July 14, 2012 Author Share Posted July 14, 2012 adlibunregister !!! DOH!!!Thanks buddy Link to comment Share on other sites More sharing options...
kiffab Posted July 14, 2012 Author Share Posted July 14, 2012 (edited) One complication... I am using an image as my button. Can the same thing be achieved? The button has an initial stop type image (red light). When clicked, it changes to green (on). Also, I should add it's not technically a "button" - I'm using GUICtrlCreatePic. Sorry. Edited July 14, 2012 by kiffab Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted July 14, 2012 Moderators Share Posted July 14, 2012 kiffab, I am using an image as my button. Can the same thing be achieved?Very easily: expandcollapse popup#include <GUIConstantsEx.au3> Global $iColour = "Red" $sPath = StringRegExpReplace(@AutoItExe, "(^.*)(.*)", "1") $sRed = $sPath & "ExamplesGUIAdvancedImagesRed.bmp" $sGrn = $sPath & "ExamplesGUIAdvancedImagesGreen.bmp" $hGUI = GUICreate("Test", 500, 500) $cPic = GUICtrlCreatePic($sRed, 10, 10, 30, 30) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $cPic Switch $iColour Case "Red" MsgBox(0, "Hi", "Function Running") AdlibRegister("_Run", 1000) GUICtrlSetImage($cPic, $sGrn) $iColour = "Green" Case "Green" MsgBox(0, "Hi", "Function Ended") AdlibUnRegister("_Run") GUICtrlSetImage($cPic, $sRed) $iColour = "Red" EndSwitch EndSwitch WEnd Func _Run() ConsoleWrite("Running at " & @SEC & @CRLF) EndFunc 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 Link to comment Share on other sites More sharing options...
kiffab Posted July 14, 2012 Author Share Posted July 14, 2012 Perfect! Works a treat and I understand exactly what you've done there. This will be useful for other parts of my app. Thank you Link to comment Share on other sites More sharing options...
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