Jump to content

Returning from a function


Recommended Posts

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

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 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: 22/04/2018

Link to comment
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.

Link to comment
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.

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...