gnomic Posted October 10, 2012 Share Posted October 10, 2012 Hey, If i have a button that runs a function, which shows many buttons in the GUI - how can i restart/reset/clear it all, so the function buttons, isnt there anymore? any help is appriciated, thanks Link to comment Share on other sites More sharing options...
water Posted October 10, 2012 Share Posted October 10, 2012 Can you post the code so we can see what you are talking about? My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
gnomic Posted October 10, 2012 Author Share Posted October 10, 2012 #include <GUIConstantsEx.au3> Opt("GUIOnEventMode", 1) ; Change to OnEvent mode $mainwindow = GUICreate("Test", 600, 100) GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") $_menu1 = GUICtrlCreateButton("Menu 1", 10, 10, 80) GUICtrlSetOnEvent($_menu1, "_Menu1") $_menu2 = GUICtrlCreateButton("Menu 2", 100, 10, 80) GUICtrlSetOnEvent($_menu2, "_Menu2") Func _Menu1() $_test1 = GUICtrlCreateButton("Test 1", 10, 50, 60) GUICtrlSetOnEvent($_test1, "_Test1") $_test2 = GUICtrlCreateButton("Test 2", 80, 50, 60) GUICtrlSetOnEvent($_test2, "_Test2") EndFunc Func _Menu2() $_test3 = GUICtrlCreateButton("Test 3", 10, 50, 60) GUICtrlSetOnEvent($_test3, "_Test3") $_test4 = GUICtrlCreateButton("Test 4", 80, 50, 60) GUICtrlSetOnEvent($_test4, "_Test4") EndFunc GUISetState(@SW_SHOW) While 1 Sleep(1000) ; Idle around WEnd Func CLOSEClicked() Exit EndFunc Link to comment Share on other sites More sharing options...
water Posted October 10, 2012 Share Posted October 10, 2012 You could use "GUICtrlDelete" for each button to delete it when it is no longer needed. Or you could use Tabs to present a new "GUI" whenever a menu button is clicked. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
gnomic Posted October 10, 2012 Author Share Posted October 10, 2012 thanks Link to comment Share on other sites More sharing options...
water Posted October 10, 2012 Share Posted October 10, 2012 Here's an example of a very general tab GUI I use in one of my Active Directory tools: expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiTreeView.au3> #include <TabConstants.au3> #include <EditConstants.au3> #include <GuiTab.au3> Global $sTitle = "ADAT - Active Directory Admin Tool" Global $iCurrTab = 0, $iPrevTab = 0, $iMsg, $iResult, $iLine, $sIniFile = @ScriptDir & "ADAT.INI" Global $bIsConnected = False, $sReturnValue = "" #region ### Hold the input of the GUI ### Global $sT0_AdminUserName, $sT0_AdminUserPassword, $sT0_DomainName, $sT0_DomainController, $sT0_ConfigurationContext Global $sT1_ComputerName, $sT1_OU, $sT1_Usergroup, $sT1_Description Global $sT2_ComputerName, $sT2_UserID, $sT2_Password Global $sT3_UserID #endregion ### Hold the input of the GUI ### #region ### Position and dimension of controls ### Global $iDLeft = 16, $iDTop = 38, $iDWidth = 600, $iDHeight = 17 ; description line Global $iLLeft = 16, $iLTop = 74, $iLWidth = 191, $iLHeight = 17, $iLSpace = 17 ; Label control Global $iILeft = 208, $iITop = 72, $iIWidth = 209, $iIHeight = 21, $iISpace = 13 ; Input control Global $iBLeft = 426, $iBTop = 72, $iBWidth = 25, $iBHeight = 21, $iBSpace = 13 ; Addional Button control #endregion ### Position and dimension of controls ### ; Fill the fields of the "General" tab from an INI file $sT0_AdminUserName = IniRead($sIniFile, "ADAT", "AdminUserName", "") $sT0_DomainName = IniRead($sIniFile, "ADAT", "DomainName", "") $sT0_DomainController = IniRead($sIniFile, "ADAT", "DomainController", "") $sT0_ConfigurationContext = IniRead($sIniFile, "ADAT", "ConfigurationContext", "") #region ### START Koda GUI section ### Global $hGUI = GUICreate($sTitle, 625, 448, 192, 124) Global $hTab = GUICtrlCreateTab(8, 8, 609, 400, BitOR($GUI_SS_DEFAULT_TAB, $TCS_MULTILINE)) ;--------------- ; Tab 0: General ;--------------- $iLine = 0 Global $hT0 = GUICtrlCreateTabItem("&General") GUICtrlCreateLabel("Enter admin credentials to be used for all other functions or empty for the current user.", $iDLeft, $iDTop, $iDWidth, $iDHeight) GUICtrlSetFont(-1, 9, 800) ; bold ; Line 1 GUICtrlCreateLabel("Admin user name", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT0_AdminUserName = GUICtrlCreateInput($sT0_AdminUserName, $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) GUICtrlSetState(-1, $GUI_Focus) ; Line 2 $iLine += 1 GUICtrlCreateLabel("Admin user password", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT0_AdminUserPassword = GUICtrlCreateInput("", $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight, BitOR($GUI_SS_DEFAULT_INPUT, $ES_PASSWORD)) ; Line 3 $iLine += 1 GUICtrlCreateLabel("Active Directory domain name", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT0_DomainName = GUICtrlCreateInput($sT0_DomainName, $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) ; Line 4 $iLine += 1 GUICtrlCreateLabel("Name of Domain Controller", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT0_DomainController = GUICtrlCreateInput($sT0_DomainController, $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) ; Line 5 $iLine += 1 GUICtrlCreateLabel("Configuration naming context", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT0_ConfigurationContext = GUICtrlCreateInput($sT0_ConfigurationContext, $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) ;----------------------- ; Tab 1: Create computer ;----------------------- $iLine = 0 Global $hT1 = GUICtrlCreateTabItem("&Create Computer") GUICtrlCreateLabel("Create a computer in the specified OU.", $iDLeft, $iDTop, $iDWidth, $iDHeight) GUICtrlSetFont(-1, 9, 800) ; bold ; Line 1 GUICtrlCreateLabel("Computername", $iLLeft, 74, $iLWidth, $iLHeight) Global $hT1_ComputerName = GUICtrlCreateInput(@ComputerName, $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) Global $hT1_ButtonComputer = GUICtrlCreateButton("...", $iBLeft, $iBTop + $iLine * $iBHeight + $iLine * $iBSpace, $iBWidth, $iBHeight) ; Line 2 $iLine += 1 GUICtrlCreateLabel("OU to create the computer in", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT1_OU = GUICtrlCreateInput("", $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) Global $hT1_ButtonOU = GUICtrlCreateButton("...", $iBLeft, $iBTop + $iLine * $iBHeight + $iLine * $iBSpace, $iBWidth, $iBHeight) ; Line 3 $iLine += 1 GUICtrlCreateLabel("User/group allowed to join the comp.", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT1_Usergroup = GUICtrlCreateInput(@UserName, $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) ; Line 4 $iLine += 1 GUICtrlCreateLabel("Description", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT1_Description = GUICtrlCreateInput("", $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) ;--------------------- ; Tab 2: Join computer ;--------------------- $iLine = 0 Global $hT2 = GUICtrlCreateTabItem("&Join Computer") GUICtrlCreateLabel("Join the specified computer to the domain defined on the 'General' tab.", $iDLeft, $iDTop, $iDWidth, $iDHeight) GUICtrlSetFont(-1, 9, 800) ; bold ; Line 1 GUICtrlCreateLabel("Computername", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT2_ComputerName = GUICtrlCreateInput(@ComputerName, $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) Global $hT2_ButtonComputer = GUICtrlCreateButton("...", $iBLeft, $iBTop + $iLine * $iBHeight + $iLine * $iBSpace, $iBWidth, $iBHeight) ; Line 2 $iLine += 1 GUICtrlCreateLabel("User name", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT2_UserID = GUICtrlCreateInput($sT2_UserID, $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) Global $hT2_ButtonUser = GUICtrlCreateButton("...", $iBLeft, $iBTop + $iLine * $iBHeight + $iLine * $iBSpace, $iBWidth, $iBHeight) ; Line 3 $iLine += 1 GUICtrlCreateLabel("User password", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT2_Password = GUICtrlCreateInput("", $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight, BitOR($GUI_SS_DEFAULT_INPUT, $ES_PASSWORD)) ;----------------------------- ; Tab 3: Query user properties ;----------------------------- $iLine = 0 Global $hT3 = GUICtrlCreateTabItem("Query &user properties") GUICtrlCreateLabel("Show properties of the selected user.", $iDLeft, $iDTop, $iDWidth, $iDHeight) GUICtrlSetFont(-1, 9, 800) ; bold ; Line 1 GUICtrlCreateLabel("Username", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT3_UserID = GUICtrlCreateInput(@UserName, $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) Global $hT3_ButtonUser = GUICtrlCreateButton("...", $iBLeft, $iBTop + $iLine * $iBHeight + $iLine * $iBSpace, $iBWidth, $iBHeight) ;--------------------------- ; Terminate the tab creation ;--------------------------- GUICtrlCreateTabItem("") ;--------------------- ; Buttons for all tabs ;--------------------- Global $hButton_Process = GUICtrlCreateButton("Process", 8, 416, 97, 25) Global $hButton_Exit = GUICtrlCreateButton("Exit", 517, 415, 97, 25) #endregion ### END Koda GUI section ### GUISetState(@SW_SHOW) While 1 $iMsg = GUIGetMsg() Switch $iMsg Case $GUI_EVENT_CLOSE, $hButton_Exit Exit Case $hButton_Process $iCurrTab = GUICtrlRead($hTab) ; Call("Process_Tab" & $iCurrTab) Case $hTab $iPrevTab = $iCurrTab $iCurrTab = GUICtrlRead($hTab) ; Set the focus to the first input field on every tab #region ### Set focus ### If $iCurrTab = 0 Then GUICtrlSetState($hT0_AdminUserName, $GUI_Focus) If $iCurrTab = 1 Then GUICtrlSetState($hT1_ComputerName, $GUI_Focus) If $iCurrTab = 2 Then GUICtrlSetState($hT2_ComputerName, $GUI_Focus) If $iCurrTab = 3 Then GUICtrlSetState($hT3_UserID, $GUI_Focus) #endregion ### Set focus ### #region ### Process buttons ### Case $hT1_ButtonOU ; Display a treeview of the OUs and let the user select one Case $hT1_ButtonComputer, $hT2_ButtonComputer ; List all computers and let the user select one Case $hT2_ButtonUser, $hT3_ButtonUser #endregion ### Process buttons ### EndSwitch WEnd My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki 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