Sign in to follow this  
Followers 0
Meerecat

Returning from a function

4 posts in this topic

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.

Share this post


Link to post
Share on other sites



Have a look at this >> http://www.autoitscript.com/wiki/Managing_Multiple_GUIs


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_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 parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Perfect. Thank you both very much. Now to go break all the gui's in my 2 programs with these updates :huh2:


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.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0