Meerecat Posted June 12, 2011 Share Posted June 12, 2011 Raising a good point JohnOne made regarding my last program. How do I return from a function without having to recall the function again. Currently I delete and redraw the GUI: Func _about() GUIDelete() GUICreate("About", 302, 127) GUISetBkColor(0xFFFFFF) $Label2 = GUICtrlCreateLabel("Meerecat Folder Lock", 73, 8, 165, 23) GUICtrlSetFont(-1, 12, 800, 0, "Leelawadee") $Label3 = GUICtrlCreateLabel("Meerecat IT Services ©2011", 152, 104, 145, 18) GUICtrlSetFont(-1, 8, 400, 0, "Leelawadee") $Label1 = GUICtrlCreateLabel("Version 2.0", 116, 32, 69, 19) GUICtrlSetFont(-1, 10, 400, 0, "Leelawadee") $Label4 = GUICtrlCreateLabel("www.meerecat-itservices.co.uk", 61, 56, 179, 19) GUICtrlSetFont(-1, 10, 400, 0, "Leelawadee") $Label5 = GUICtrlCreateLabel("(click here to visit)", 146, 72, 92, 18) GUICtrlSetFont(-1, 8, 400, 0, "Leelawadee") GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE _main() EndSwitch WEnd EndFunc This hides the main GUI and displays the about box. I would prefer to be able to leave the about box on top of the main gui, then when you close the about box the main gui still exists. How can I fix this? I looked up Return in the help file, but closing the About box does not return any parameters so don't see how I can use this. Do I somehow need to create this about gui as a child, so when you close it the parent still exists? Many Thanks Lack of planning on your part does not constitute an emergency on my part.-The biggest idiot can ask questions the smartest man cannot answer. Link to comment Share on other sites More sharing options...
guinness Posted June 12, 2011 Share Posted June 12, 2011 Have a look at this >> http://www.autoitscript.com/wiki/Managing_Multiple_GUIs UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Andreik Posted June 12, 2011 Share Posted June 12, 2011 This can be a way: Global $MAIN $MAIN = GUICreate("Main") $ABOUT = GUICtrlCreateButton("About",5,5,50,20) GUISetState(@SW_SHOW,$MAIN) While True Switch GUIGetMsg() Case $ABOUT About() Case -3 Exit EndSwitch Sleep(10) WEnd Func About() GUISetState(@SW_HIDE,$MAIN) ;Optional to hide main window $ABOUT_GUI = GUICreate("About",250,250,Default,Default,Default,Default,$MAIN) GUISetState(@SW_SHOW,$ABOUT_GUI) While True If GUIGetMsg() = -3 Then ExitLoop Sleep(10) WEnd GUIDelete($ABOUT_GUI) GUISetState(@SW_SHOW,$MAIN) ;Optional to show main window [if was hidden] EndFunc or another way to process all GUI messages in same loop: Global $MAIN $MAIN = GUICreate("Main") $ABOUT = GUICtrlCreateButton("About",5,5,50,20) GUISetState(@SW_SHOW,$MAIN) While True $MSG = GUIGetMsg(1) Switch $MSG[0] Case $ABOUT About() Case -3 If $MSG[1] = $MAIN Then Exit Else GUIDelete($MSG[1]) GUISetState(@SW_SHOW,$MAIN) EndIf EndSwitch Sleep(10) WEnd Func About() GUISetState(@SW_HIDE,$MAIN) $ABOUT_GUI = GUICreate("About",250,250) GUISetState(@SW_SHOW,$ABOUT_GUI) EndFunc When the words fail... music speaks. Link to comment Share on other sites More sharing options...
Meerecat Posted June 12, 2011 Author Share Posted June 12, 2011 Perfect. Thank you both very much. Now to go break all the gui's in my 2 programs with these updates Lack of planning on your part does not constitute an emergency on my part.-The biggest idiot can ask questions the smartest man cannot answer. 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