jtrout Posted June 25, 2007 Posted June 25, 2007 I need some help with some code that I am trying to get to work. The buttons don't always work nor can i get the input boxes to show up when it is run. Thanks for all the help. CODE #include <guitab.au3> #include <GuiConstants.au3> #include <array.au3> Opt("MustDeclareVars", 1) ; Variables must be pre-declared Global $fileitemExit, $fileitemLogComplete, $filemenuFile, $filemenuLog, $tab, $iCurrentTab Global $UpdateServerbutton Local $Server Local $ServerAlogentversionNumber, $ServerAlogentversionNumberFieldCurrent, $ServerAlogentversionNumberFieldFuture, $ServerAlogentversionNumberMaster Local $ServerArgo, $ServerArgoFieldCurrent, $ServerArgoFieldFuture, $ServerArgoMaster Local $ServerCodeversion, $ServerCodeversionFieldCurrent, $ServerCodeversionFieldFuture, $ServerCodeversionMaster Local $ServerServerDateDate, $ServerServerDateDateFieldCurrent, $ServerServerDateDateFieldFuture, $ServerServerDateDateMaster Local $ServerSortPatternDate, $ServerSortPatternDateFieldCurrent, $ServerSortPatternDateFieldFuture, $ServerSortPatternDateMaster Local $ServerSortPatternTime, $ServerSortPatternTimeFieldCurrent, $ServerSortPatternTimeFieldFuture, $ServerSortPatternTimeMaster Local $ServerSortPatternversionNumber, $ServerSortPatternversionNumberFieldCurrent, $ServerSortPatternversionNumberFieldFuture, $ServerSortPatternversionNumberMaster Local $ServerTDEFNDate, $ServerTDEFNDateFieldCurrent, $ServerTDEFNDateFieldFuture, $ServerTDEFNDateMaster Local $ServerTDEFNTime, $ServerTDEFNTimeFieldCurrent, $ServerTDEFNTimeFieldFuture, $ServerTDEFNTimeMaster Local $ServerTDEFNversionNumber, $ServerTDEFNversionNumberFieldCurrent, $ServerTDEFNversionNumberFieldFuture, $ServerTDEFNversionNumberMaster Opt("GUIOnEventMode", 1) ; Change to OnEvent mode displayGUI() Func serverArray() Dim $svrArray[9] $svrArray[0] = "S0890925A00" $svrArray[1] = "S0890925B00" $svrArray[2] = "S0896685C00" $svrArray[3] = "S0896691A00" $svrArray[4] = "S0896692A00" $svrArray[5] = "S089623700M000" $svrArray[6] = "S0896693A00" $svrArray[7] = "S0896694A00" $svrArray[8] = "S0896695A00" _ArraySort($svrArray) EndFunc ;==>serverArray Func displayGUI() ; GUI GUICreate("Code Loader GUI", 600, 830) ;GuiSetIcon(@SystemDir & "\mspaint.exe", 0) GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents") GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents") GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents") GUICtrlSetOnEvent($tab, "TabClick") ; MENU $filemenuFile = GUICtrlCreateMenu("&File") $fileitemExit = GUICtrlCreateMenuItem("E&xit", $filemenuFile) GUICtrlSetOnEvent(-1, "ExitGUI") ;$filemenuMap = GuiCtrlCreateMenu("&Map Drives") ;$fileitemMapIST1 = GUICtrlCreateMenuItem("Re-map IST1 Server", $filemenuMap) ;GUICtrlSetOnEvent(-1, "RemapIST1") ;$fileitemMapIST2 = GUICtrlCreateMenuItem("Re-map IST2 Server", $filemenuMap) ;GUICtrlSetOnEvent(-1, "RemapIST2") ;$fileitemMapTST1 = GUICtrlCreateMenuItem("Re-map TST1 Server", $filemenuMap) ;GUICtrlSetOnEvent(-1, "RemapTST1") ;$fileitemMapTST2 = GUICtrlCreateMenuItem("Re-map TST2 Server", $filemenuMap) ;GUICtrlSetOnEvent(-1, "RemapTST2") ;$fileitemMapUAT = GUICtrlCreateMenuItem("Re-map UAT Server", $filemenuMap) ;GUICtrlSetOnEvent(-1, "RemapUAT") ;$filemenuRefresh = GUICtrlCreateMenu("&Refresh Tab") ;$fileitemRefreshIST1 = GUICtrlCreateMenuItem("Refresh IST1 Tab", $filemenuRefresh) ;GUICtrlSetOnEvent(-1, "RefreshIST1Tab") ;$fileitemRefreshIST2 = GUICtrlCreateMenuItem("Refresh IST2 Tab", $filemenuRefresh) ;GUICtrlSetOnEvent(-1, "RefreshIST2Tab") ;$fileitemRefreshTST1 = GUICtrlCreateMenuItem("Refresh TST1 Tab", $filemenuRefresh) ;GUICtrlSetOnEvent(-1, "RefreshTST1Tab") ;$fileitemRefreshTST2 = GUICtrlCreateMenuItem("Refresh TST2 Tab", $filemenuRefresh) ;GUICtrlSetOnEvent(-1, "RefreshTST2Tab") ;$fileitemRefreshUAT = GUICtrlCreateMenuItem("Refresh UAT Tab", $filemenuRefresh) ;GUICtrlSetOnEvent(-1, "RefreshUATTab") ;$filemenuLog = GUICtrlCreateMenu("&Log") ;$fileitemLogComplete = GUICtrlCreateMenuItem("View Complete Log", $filemenuLog) ;GUICtrlSetOnEvent(-1, "CompleteLog") ; TABS Tabs() TabClick() getINIInfo($Server) $iCurrentTab = _GUICtrlTabGetCurFocus($tab) GUISetState(@SW_SHOW) ;GUICtrlSetOnEvent($UpdateServerbutton, "UpdateServer") While 1 Sleep(10) WEnd GUIDelete() EndFunc ;==>displayGUI Func ExitGUI() Exit EndFunc ;==>ExitGUI Func SpecialEvents() Select Case @GUI_CtrlId = $GUI_EVENT_CLOSE Exit Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE Case @GUI_CtrlId = $GUI_EVENT_RESTORE EndSelect EndFunc ;==>SpecialEvents Func Tabs() $tab = GUICtrlCreateTab(5, 5, 590, 800) $Server = "S0890925A00" GUITab($Server) $Server = "S0890925B00" GUITab($Server) $Server = "S0896692A00" GUITab($Server) $Server = "S0896691A00" GUITab($Server) $Server = "S0896685C00" GUITab($Server) $Server = "S8024444A01" GUITab($Server) GUICtrlCreateTabItem("") EndFunc ;==>Tabs Func TabClick() If _GUICtrlTabGetCurFocus($tab) = 0 Then LoadFields($Server) RefreshFields($Server) ElseIf _GUICtrlTabGetCurFocus($tab) = 1 Then LoadFields($Server) RefreshFields($Server) ElseIf _GUICtrlTabGetCurFocus($tab) = 2 Then LoadFields($Server) RefreshFields($Server) ElseIf _GUICtrlTabGetCurFocus($tab) = 3 Then LoadFields($Server) RefreshFields($Server) ElseIf _GUICtrlTabGetCurFocus($tab) = 4 Then LoadFields($Server) RefreshFields($Server) ElseIf _GUICtrlTabGetCurFocus($tab) = 5 Then LoadFields($Server) RefreshFields($Server) EndIf GUICtrlSetOnEvent($UpdateServerbutton, "UpdateServer") EndFunc ;==>TabClick Func GUITab($Server) GUICtrlCreateTabItem($Server) GUICtrlCreateLabel("Current INI on " & $Server, 10, 40) GUICtrlCreateLabel("ARGO - versionNumber", 10, 70) GUICtrlCreateLabel("TDEFN - versionNumber", 10, 100) GUICtrlCreateLabel("TDEFN - Date", 10, 130) GUICtrlCreateLabel("TDEFN - Time", 10, 160) GUICtrlCreateLabel("Alogent - versionNumber", 10, 190) GUICtrlCreateLabel("Sort Pattern - versionNumber", 10, 220) GUICtrlCreateLabel("Sort Pattern - Date", 10, 250) GUICtrlCreateLabel("Sort Pattern - Time", 10, 280) GUICtrlCreateLabel("Server Date - Date", 10, 310) GUICtrlCreateLabel("Code Delivery Folder - version", 10, 340) GUICtrlCreateLabel("Future INI on " & $Server, 10, 400) GUICtrlCreateLabel("ARGO - versionNumber", 10, 430) GUICtrlCreateLabel("TDEFN - versionNumber", 10, 460) GUICtrlCreateLabel("TDEFN - Date", 10, 490) GUICtrlCreateLabel("TDEFN - Time", 10, 520) GUICtrlCreateLabel("Alogent - versionNumber", 10, 550) GUICtrlCreateLabel("Sort Pattern - versionNumber", 10, 580) GUICtrlCreateLabel("Sort Pattern - Date", 10, 610) GUICtrlCreateLabel("Sort Pattern - Time", 10, 640) GUICtrlCreateLabel("Server Date - Date", 10, 670) GUICtrlCreateLabel("Code Delivery Folder - version", 10, 700) $UpdateServerbutton = GUICtrlCreateButton("Update " & $Server, 100, 750, 200, 30) EndFunc ;==>GUITab Func LoadFields($Server) $ServerArgoFieldCurrent = GUICtrlCreateInput("", 180, 70, 200, 20) $ServerTDEFNversionNumberFieldCurrent = GUICtrlCreateInput("", 180, 100, 200, 20) $ServerTDEFNDateFieldCurrent = GUICtrlCreateInput("", 180, 130, 200, 20) $ServerTDEFNTimeFieldCurrent = GUICtrlCreateInput("", 180, 160, 200, 20) $ServerAlogentversionNumberFieldCurrent = GUICtrlCreateInput("", 180, 190, 200, 20) $ServerSortPatternversionNumberFieldCurrent = GUICtrlCreateInput("", 180, 220, 200, 20) $ServerSortPatternDateFieldCurrent = GUICtrlCreateInput("", 180, 250, 200, 20) $ServerSortPatternTimeFieldCurrent = GUICtrlCreateInput("", 180, 280, 200, 20) $ServerServerDateDateFieldCurrent = GUICtrlCreateInput("", 180, 310, 200, 20) $ServerCodeversionFieldCurrent = GUICtrlCreateInput("", 180, 340, 200, 20) $ServerArgoFieldFuture = GUICtrlCreateInput("", 180, 430, 200, 20) $ServerTDEFNversionNumberFieldFuture = GUICtrlCreateInput("", 180, 460, 200, 20) $ServerTDEFNDateFieldFuture = GUICtrlCreateInput("", 180, 490, 200, 20) $ServerTDEFNTimeFieldFuture = GUICtrlCreateInput("", 180, 520, 200, 20) $ServerAlogentversionNumberFieldFuture = GUICtrlCreateInput("", 180, 550, 200, 20) $ServerSortPatternversionNumberFieldFuture = GUICtrlCreateInput("", 180, 580, 200, 20) $ServerSortPatternDateFieldFuture = GUICtrlCreateInput("", 180, 610, 200, 20) $ServerSortPatternTimeFieldFuture = GUICtrlCreateInput("", 180, 640, 200, 20) $ServerServerDateDateFieldFuture = GUICtrlCreateInput("", 180, 670, 200, 20) $ServerCodeversionFieldFuture = GUICtrlCreateInput("", 180, 700, 200, 20) EndFunc ;==>LoadFields Func RefreshFields($Server) GUICtrlSetData($ServerArgoFieldCurrent, $ServerArgo) GUICtrlSetData($ServerTDEFNversionNumberFieldCurrent, $ServerTDEFNversionNumber) GUICtrlSetData($ServerTDEFNDateFieldCurrent, $ServerTDEFNDate) GUICtrlSetData($ServerTDEFNTimeFieldCurrent, $ServerTDEFNTime) GUICtrlSetData($ServerAlogentversionNumberFieldCurrent, $ServerAlogentversionNumber) GUICtrlSetData($ServerSortPatternversionNumberFieldCurrent, $ServerSortPatternversionNumber) GUICtrlSetData($ServerSortPatternDateFieldCurrent, $ServerSortPatternDate) GUICtrlSetData($ServerSortPatternTimeFieldCurrent, $ServerSortPatternTime) GUICtrlSetData($ServerServerDateDateFieldCurrent, $ServerServerDateDate) GUICtrlSetData($ServerCodeversionFieldCurrent, $ServerCodeversion) GUICtrlSetData($ServerArgoFieldFuture, $ServerArgoMaster) GUICtrlSetData($ServerTDEFNversionNumberFieldFuture, $ServerTDEFNversionNumberMaster) GUICtrlSetData($ServerTDEFNDateFieldFuture, $ServerTDEFNDateMaster) GUICtrlSetData($ServerTDEFNTimeFieldFuture, $ServerTDEFNTimeMaster) GUICtrlSetData($ServerAlogentversionNumberFieldFuture, $ServerAlogentversionNumberMaster) GUICtrlSetData($ServerSortPatternversionNumberFieldFuture, $ServerSortPatternversionNumberMaster) GUICtrlSetData($ServerSortPatternDateFieldFuture, $ServerSortPatternDateMaster) GUICtrlSetData($ServerSortPatternTimeFieldFuture, $ServerSortPatternTimeMaster) GUICtrlSetData($ServerServerDateDateFieldFuture, $ServerServerDateDateMaster) GUICtrlSetData($ServerCodeversionFieldFuture, $ServerCodeversionMaster) EndFunc ;==>RefreshFields Func getINIInfo($Server) MsgBox(0,"TEST","The $Server is: " & $Server) If $Server = "S0890925A00" Then $ServerArgo = "1.1" ElseIf $Server = "S0890925B00" Then $ServerArgo = "1.2" ElseIf $Server = "S0896692A00" Then $ServerArgo = "1.3" ElseIf $Server = "S0896691A00" Then $ServerArgo = "1.4" ElseIf $Server = "S0896685C00" Then $ServerArgo = "1.5" ElseIf $Server = "S8024444A01" Then $ServerArgo = "1.6" EndIf EndFunc ;==>getINIInfo Func UpdateServer() MsgBox(0, "TEST", "Server is: " & $Server) If $Server = "S0890925A00" Then MsgBox(0, "TEST", "I WAS CALLED FROM " & $Server & " TAB") MsgBox(0, "TEST", $Server & " has Argo Field of " & $ServerArgo) ElseIf $Server = "S0890925B00" Then MsgBox(0, "TEST", "I WAS CALLED FROM " & $Server & " TAB") MsgBox(0, "TEST", $Server & " has Argo Field of " & $ServerArgo) ElseIf $Server = "S0896692A00" Then MsgBox(0, "TEST", "I WAS CALLED FROM " & $Server & " TAB") MsgBox(0, "TEST", $Server & " has Argo Field of " & $ServerArgo) ElseIf $Server = "S0896691A00" Then MsgBox(0, "TEST", "I WAS CALLED FROM " & $Server & " TAB") MsgBox(0, "TEST", $Server & " has Argo Field of " & $ServerArgo) ElseIf $Server = "S0896685C00" Then MsgBox(0, "TEST", "I WAS CALLED FROM " & $Server & " TAB") MsgBox(0, "TEST", $Server & " has Argo Field of " & $ServerArgo) ElseIf $Server = "S8024444A01" Then MsgBox(0, "TEST", "I WAS CALLED FROM " & $Server & " TAB") MsgBox(0, "TEST", $Server & " has Argo Field of " & $ServerArgo) EndIf EndFunc ;==>UpdateServer
smashly Posted June 25, 2007 Posted June 25, 2007 Hi, Can you post a sample ini that the fields are Loaded from/Saved to? I think you can greatly improve the way your script is written by looping the controls into an array, it'll make it easier in the long run to to quickly fill/refresh/save the input fields using half the amount of code in your script and your controls working reliably. I've was able to get your scripts control creation to 1/4 the amount of lines of code, but without an ini layout to work with it sort of makes it hard to get the gui to do anything apart from look between tabs or pop up a msgbox. But I can identify the controls reliably the way I've worked it. Cheers
jtrout Posted June 25, 2007 Author Posted June 25, 2007 I've got that part down just trying to trim down the tabs and getting the vars and buttons to work correctly in what I published.Hi, Can you post a sample ini that the fields are Loaded from/Saved to?I think you can greatly improve the way your script is written by looping the controls into an array, it'll make it easier in the long run to to quickly fill/refresh/save the input fields using half the amount of code in your script and your controls working reliably.I've was able to get your scripts control creation to 1/4 the amount of lines of code, but without an ini layout to work with it sort of makes it hard to get the gui to do anything apart from look between tabs or pop up a msgbox.But I can identify the controls reliably the way I've worked it.Cheers
smashly Posted June 26, 2007 Posted June 26, 2007 (edited) This probably won't help and it'll more then likely add confusion to the way you write your script.. It's just another way of looking at your control creation so you can ID controls that are clicked while shortening the length of your script. On a Tab fill in the bottom 10 input boxes (or some of the bottom 10 inputs) with some text. Click the Update button and it'll fill in the top 10 inputs with the filled in bottom 10 inputs. Click a tab and a msgbox will tell you the tab you clicked and the name of the tab. Here goes , crude example. Edited June 26, 2007 by smashly
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