Elettrone Posted August 26, 2009 Posted August 26, 2009 Hi, i need to create a simple info(means the text will not be editable but will update itself) GUI where the info contained will change continuosly but i can't find the appropriate function to accomplish this. As an example: #include <Misc.au3> #include <GUIConstantsEx.au3> HotKeySet("{ESC}","Terminate") HotKeySet("a","A") HotKeySet("b","B") Global $var GUICreate("Info",150,300) GUISetState() $Label = GUICtrlCreateLabel("$Var = " & $var,20,50) While 1 $msg = GUIGetMsg() WEnd func A() $var = "A" EndFunc func B() $var = "B" EndFunc Func Terminate() Exit 0 EndFunc I Want that $Var to update on my GUI when i press the hotkeys or whenever that variable changes...any hint? Thank you...
Elettrone Posted August 26, 2009 Author Posted August 26, 2009 (edited) Nevermind i found GUICtrlSetData() wich seems to work as intended, too bad the text flickers, anyone know a better way to do this? Edited August 26, 2009 by Elettrone
Info Posted August 26, 2009 Posted August 26, 2009 You shouldn't put the GUICtrlSetData() function in the infinite loop. #include <Misc.au3> #include <GUIConstantsEx.au3> HotKeySet("{ESC}","Terminate") HotKeySet("a","A") HotKeySet("b","B") Global $var GUICreate("Info",150,300) GUISetState() $Label = GUICtrlCreateLabel("$Var = " & $var,20,50) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd func A() $var = "A" GUICtrlSetData($Label,"$Var = " & $var) EndFunc func B() $var = "B" GUICtrlSetData($Label,"$Var = " & $var) EndFunc Func Terminate() Exit EndFunc
Elettrone Posted August 26, 2009 Author Posted August 26, 2009 (edited) Ouch, in this case i have to disseminate that line for the zilions of variable i have in the program T_T will be a pain to maintain and update. Edited August 26, 2009 by Elettrone
Moderators Melba23 Posted August 26, 2009 Moderators Posted August 26, 2009 Elettrone,You could keep the GUICtrlSetData line in the loop, but add a check to see if the value has changed. Something along these lines (untested):$Label = GUICtrlCreateLabel("$Var = " & $var,20,50) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch If GUICtrlRead($Label) <> "$Var = " & $var Then GUICtrlSetData($Label,"$Var = " & $var) WEndThen you only update when the variable changes and you should not get flickering.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
Info Posted August 26, 2009 Posted August 26, 2009 Elettrone, You could keep the GUICtrlSetData line in the loop, but add a check to see if the value has changed. Something along these lines (untested): $Label = GUICtrlCreateLabel("$Var = " & $var,20,50) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch If GUICtrlRead($Label) <> "$Var = " & $var Then GUICtrlSetData($Label,"$Var = " & $var) WEnd Then you only update when the variable changes and you should not get flickering. M23 Also that... Ouch, in this case i have to disseminate that line for the zilions of variable i have in the program T_T will be a pain to maintain and update. Try using arrays. >_<
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