jtrout Posted June 11, 2007 Share Posted June 11, 2007 Ok I have several input boxes on a tab and I want to be able to either use a menu item or a button that the user would click to "reset" or return to beginning state the values that were passed into the input fileds.I have used the same script to reset the field as I did to populate it.GuiCtrlCreateInput($value, 200, 40, 130, 20)But when I click the input field or tab into the field it goes back to the value I put in before "resetting" the fields.This is something that has been requested but I can't figure out what I am doing wrong.Thanks for your help! Link to comment Share on other sites More sharing options...
MHz Posted June 11, 2007 Share Posted June 11, 2007 (edited) Show the relevant code olease so the issue can be pointed out to you in code solution. Seems like your message loop or on event is hooked on the input rather then the reset button. Edit: Use [ autoit ] [ /autoit ] tags for code (no spaces in the tags themselves). Edited June 11, 2007 by MHz Link to comment Share on other sites More sharing options...
jtrout Posted June 11, 2007 Author Share Posted June 11, 2007 For the menu $filemenuRefresh = GUICtrlCreateMenu("&Refresh Tab") $fileitemRefreshIST1 = GUICtrlCreateMenuItem("Refresh IST1 Tab", $filemenuRefresh) GUICtrlSetOnEvent(-1, "RefreshIST1Tab") Func GUITabIST1() GuiCtrlCreateTabItem("IST1") GuiCtrlCreateLabel("ARGO - versionNumber", 10, 40) GuiCtrlCreateLabel("TDEFN - versionNumber", 10, 80) GuiCtrlCreateLabel("TDEFN - Date", 10, 120) GuiCtrlCreateLabel("TDEFN - Time", 10, 160) GuiCtrlCreateLabel("Alogent - versionNumber", 10, 200) GuiCtrlCreateLabel("Sort Pattern - versionNumber", 10, 240) GuiCtrlCreateLabel("Sort Pattern - Date", 10, 280) GuiCtrlCreateLabel("Sort Pattern - Time", 10, 320) GuiCtrlCreateLabel("Server Date - Date", 10, 360) GuiCtrlCreateLabel("Code Delivery Folder - version", 10, 400) $UpdateIST1button = GuiCtrlCreateButton("Update IST1", 145, 440, 100, 30) GUICtrlSetOnEvent($UpdateIST1button, "UpdateIST1") LoadIST1Fields() EndFunc Func LoadIST1Fields() Dim $IST1ArgoInput ;$IST1ArgoField = GuiCtrlCreateInput($IST1Argo, 200, 40, 130, 20) $IST1ArgoInput = GUICtrlCreateInput("",200,40,130,20) $IST1ArgoField = GUICtrlSetData($IST1ArgoInput, $IST1Argo) $IST1TDEFNversionNumberField = GuiCtrlCreateInput($IST1TDEFNversionNumber, 200, 80, 130, 20) $IST1TDEFNDateField = GuiCtrlCreateInput($IST1TDEFNDate, 200, 120, 130, 20) $IST1TDEFNTimeField = GuiCtrlCreateInput($IST1TDEFNTime, 200, 160, 130, 20) $IST1AlogentversionNumberField = GuiCtrlCreateInput($IST1AlogentversionNumber, 200, 200, 130, 20) $IST1SortPatternversionNumberField = GuiCtrlCreateInput($IST1SortPatternversionNumber, 200, 240, 130, 20) $IST1SortPatternDateField = GuiCtrlCreateInput($IST1SortPatternDate, 200, 280, 130, 20) $IST1SortPatternTimeField = GuiCtrlCreateInput($IST1SortPatternTime, 200, 320, 130, 20) $IST1ServerDateDateField = GuiCtrlCreateInput($IST1ServerDateDate, 200, 360, 130, 20) $IST1CodeversionField = GuiCtrlCreateInput($IST1Codeversion, 200, 400, 130, 20) EndFunc Func RefreshIST1Tab() LoadIST1Fields() EndFunc Link to comment Share on other sites More sharing options...
MHz Posted June 11, 2007 Share Posted June 11, 2007 Here is a patched version of your code that runs. expandcollapse popupOpt('GuiOnEventMode', 1) ; 0 = disable, 1 = enable. #include <GUIConstants.au3> $IST1TDEFNversionNumber = 123 GUICreate('') ;For the menu $filemenuRefresh = GUICtrlCreateMenu("&Refresh Tab") $fileitemRefreshIST1 = GUICtrlCreateMenuItem("Refresh IST1 Tab", $filemenuRefresh) GUICtrlSetOnEvent(-1, "RefreshIST1Tab") GUITabIST1 () RefreshIST1Tab () GUISetState() Func GUITabIST1 () GUICtrlCreateTabItem("IST1") GUICtrlCreateLabel("ARGO - versionNumber", 10, 40) GUICtrlCreateLabel("TDEFN - versionNumber", 10, 80) ;~ GUICtrlCreateLabel("TDEFN - Date", 10, 120) ;~ GUICtrlCreateLabel("TDEFN - Time", 10, 160) ;~ GUICtrlCreateLabel("Alogent - versionNumber", 10, 200) ;~ GUICtrlCreateLabel("Sort Pattern - versionNumber", 10, 240) ;~ GUICtrlCreateLabel("Sort Pattern - Date", 10, 280) ;~ GUICtrlCreateLabel("Sort Pattern - Time", 10, 320) ;~ GUICtrlCreateLabel("Server Date - Date", 10, 360) ;~ GUICtrlCreateLabel("Code Delivery Folder - version", 10, 400) Global $UpdateIST1button = GUICtrlCreateButton("Update IST1", 145, 440, 100, 30) ;~ GUICtrlSetOnEvent($UpdateIST1button, "UpdateIST1") LoadIST1Fields () EndFunc ;==>GUITabIST1 Func LoadIST1Fields () ;~ Dim $IST1ArgoInput ;$IST1ArgoField = GuiCtrlCreateInput($IST1Argo, 200, 40, 130, 20) Global $IST1ArgoInput = GUICtrlCreateInput("", 200, 40, 130, 20) ;~ $IST1ArgoField = GUICtrlSetData($IST1ArgoInput, $IST1Argo) Global $IST1TDEFNversionNumberField = GUICtrlCreateInput("", 200, 80, 130, 20) ;~ $IST1TDEFNDateField = GUICtrlCreateInput($IST1TDEFNDate, 200, 120, 130, 20) ;~ $IST1TDEFNTimeField = GUICtrlCreateInput($IST1TDEFNTime, 200, 160, 130, 20) ;~ $IST1AlogentversionNumberField = GUICtrlCreateInput($IST1AlogentversionNumber, 200, 200, 130, 20) ;~ $IST1SortPatternversionNumberField = GUICtrlCreateInput($IST1SortPatternversionNumber, 200, 240, 130, 20) ;~ $IST1SortPatternDateField = GUICtrlCreateInput($IST1SortPatternDate, 200, 280, 130, 20) ;~ $IST1SortPatternTimeField = GUICtrlCreateInput($IST1SortPatternTime, 200, 320, 130, 20) ;~ $IST1ServerDateDateField = GUICtrlCreateInput($IST1ServerDateDate, 200, 360, 130, 20) ;~ $IST1CodeversionField = GUICtrlCreateInput($IST1Codeversion, 200, 400, 130, 20) EndFunc ;==>LoadIST1Fields ;~ Func () ;~ EndFunc Func RefreshIST1Tab () Global $IST1TDEFNversionNumber = 'Default Data' GUICtrlSetData($IST1ArgoInput, 'Default Data') GUICtrlSetData($IST1TDEFNversionNumberField, $IST1TDEFNversionNumber) EndFunc ;==>RefreshIST1Tab While 1 Sleep(1000) WEnd You have issues with Local variables and once any function returns, then you will lose them. Not sure if you have them declared at the top of the script or not. I have changed RefreshIST1Tab() to use GuiCtrlSetData()s to update the inputs to defaults. You can also reset your variables in the function to reset their values but you are going to read the inout later so it would defeat the purpose. I would create the input controls with empty strings and update with GuiCtrlSetData() functions in your RefreshIST1Tab(). If you have an ini file with saved settings, then load them rather then RefreshIST1Tab() at start of Gui to set saved values. Link to comment Share on other sites More sharing options...
jtrout Posted June 11, 2007 Author Share Posted June 11, 2007 Woohoo! Thanks for pointing out I am an idiot and forgetting to make the variables Global. Duh! I also like the fact that you mentioned to make the fields blank then fill them in. Makes it a little cleaner. Very good tips! 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