justin0 Posted October 16, 2012 Posted October 16, 2012 Hey all, I'm sure this is a real common question but the terms don't lend themselves to googling. I have a GUI in my AutoIt script, and the main gui contains several labels. I want to update the labels at a 1 second interval (or whatever, more often is cool). and I've been doing it as such: GUISetState(@SW_SHOW) While 1 ; switch GUIGetMsg for event handling GUICtrlSetData($DateLabel, "Date: " & _Date_Time_SystemTimeToDateTimeStr(_Date_Time_GetSystemTime)) WEnd This works as intended, but I see a lot of flickering in the label as it is updated so rapidly. I tried sleeping in the loop, but as expected it messes up events. I had considered reading milliseconds and updating on certain intervals, say, every 500ms, but I can't find a way to get milliseconds from the date library. Sorry for obvious questions. I would appreciate any thoughts about methods and best practice. Thanks.
justin0 Posted October 16, 2012 Author Posted October 16, 2012 I see now that I can use a macro to determine current milliseconds. I can use this to update the script to remove the flickering. Is there a better way of doing this though?
Moderators Melba23 Posted October 16, 2012 Moderators Posted October 16, 2012 justin0, Welcome to the AutoIt forum. The way to prevent the flickering is to check that the value has changed and only update the label when required: #include <GUIConstantsEx.au3> $hGUI = GUICreate("Test", 500, 500) $cLabel = GUICtrlCreateLabel("", 10, 10, 200, 40) GUICtrlSetFont(-1, 18) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch If GUICtrlRead($cLabel) <> @SEC Then GUICtrlSetData($cLabel, @SEC) EndIf WEnd All clear? 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: Reveal hidden contents 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
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