Sign in to follow this  
Followers 0
edena

GUI that opens another gui FORM

4 posts in this topic

Hi!

I'm really trying to figure this out but it happens to be beyond my understanding so please can anyone help me on this through this illustration.

* I want to make (GUI1) to open another (GUI2) when a button is clicked.

* GUI2 has 3 input boxes: Input1 for writing text, Input2 for writing URL, Input3 to just write plain text and a button.

* When GUI2 button is clicked it then opens another (GUI3), which shows one link in a text form and a text originally written from GUI2 Input3 and also saves GUI3 on the desktop.

* The GUI3 button when clicked will go back to GUI2 to create another new file to be saved on the desktop.

I really want to see all this happen in one Autoit or .exe file when clicked.

The how it looks is below:

(GUI1):

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 203, 174, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 64, 72, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit
EndSwitch
WEnd

(GUI2):

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 203, 174, 192, 124)
$Google = GUICtrlCreateInput("Google", 40, 16, 121, 21)
$URL = GUICtrlCreateInput("URL", 40, 56, 121, 21)
$text = GUICtrlCreateInput("text", 40, 96, 121, 21)
$Button1 = GUICtrlCreateButton("Button1", 64, 136, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit
EndSwitch
WEnd

(GUI3):

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 203, 174, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 64, 136, 75, 25)
$Label1 = GUICtrlCreateLabel("Google", 72, 32, 56, 24)
GUICtrlSetFont(-1, 12, 400, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetCursor (-1, 0)
$Label2 = GUICtrlCreateLabel("text", 88, 80, 30, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit
EndSwitch
WEnd

Thank You

Share this post


Link to post
Share on other sites



How about this:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>

$Form1 = GUICreate("Form1", 203, 174)
$Button1 = GUICtrlCreateButton("Button1", 64, 72, 75, 25)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            _Form2()
    EndSwitch
WEnd

Func _Form2()
$Form2 = GUICreate("Form1", 203, 174)
$Google = GUICtrlCreateInput("Google", 40, 16, 121, 21)
$URL = GUICtrlCreateInput("URL", 40, 56, 121, 21)
$text = GUICtrlCreateInput("text", 40, 96, 121, 21)
$Button2 = GUICtrlCreateButton("Button1", 64, 136, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            GUIDelete($Form2)
            ExitLoop
        Case $Button2
            _Form3()
    EndSwitch
WEnd
EndFunc

Func _Form3()
$Form3 = GUICreate("Form1", 203, 174)
$Button3 = GUICtrlCreateButton("Button1", 64, 136, 75, 25)
$Label3 = GUICtrlCreateLabel("Google", 72, 32, 56, 24)
GUICtrlSetFont(-1, 12, 400, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetCursor(-1, 0)
$Label3a = GUICtrlCreateLabel("text", 88, 80, 30, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            GUIDelete($Form3)
            ExitLoop
    EndSwitch
WEnd
EndFunc

#include <ByteMe.au3>

Share this post


Link to post
Share on other sites

This would be a cleaner way, one While...Wend loop, checking for the correct windows messages in that loop once. Makes it a little easier to figure out how to troubleshoot it down the line. This also disables the previous form (window) so that you don't have multiple copies of the window able to be opened which will cause all sorts of issues with the script.

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
Global $Form1 = 999, $Form2 = 999, $Form3 = 999, $Button1 = 999, $Button2 = 999, $Button3 = 999
$Form1 = GUICreate("Form1", 203, 174)
$Button1 = GUICtrlCreateButton("Button1", 64, 72, 75, 25)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[1]
        Case $Form1
            Switch $nMsg[0]
                Case $GUI_EVENT_CLOSE
                    Exit
                Case $Button1
                    GUISetState(@SW_DISABLE, $Form1)
                    _Form2()
            EndSwitch
        Case $Form2
            Switch $nMsg[0]
                Case $GUI_EVENT_CLOSE
                    GUIDelete($Form2)
                    GUISetState(@SW_ENABLE, $Form1)
                Case $Button2
                    GUISetState(@SW_DISABLE, $Form1)
                    GUISetState(@SW_DISABLE, $Form2)
                    _Form3()
            EndSwitch
        Case $Form3
            Switch $nMsg[0]
                Case $GUI_EVENT_CLOSE
                    GUIDelete($Form3)
                    GUISetState(@SW_ENABLE, $Form2)
            EndSwitch
    EndSwitch
WEnd

Func _Form2()
    $Form2 = GUICreate("Form1", 203, 174)
    $Google = GUICtrlCreateInput("Google", 40, 16, 121, 21)
    $URL = GUICtrlCreateInput("URL", 40, 56, 121, 21)
    $text = GUICtrlCreateInput("text", 40, 96, 121, 21)
    $Button2 = GUICtrlCreateButton("Button1", 64, 136, 75, 25)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###
EndFunc   ;==>_Form2

Func _Form3()
    $Form3 = GUICreate("Form1", 203, 174)
    $Button3 = GUICtrlCreateButton("Button1", 64, 136, 75, 25)
    $Label3 = GUICtrlCreateLabel("Google", 72, 32, 56, 24)
    GUICtrlSetFont(-1, 12, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetCursor(-1, 0)
    $Label3a = GUICtrlCreateLabel("text", 88, 80, 30, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###
EndFunc   ;==>_Form3

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

WOW! this is brilliant!,

Thank you very much Sleepydvdr and BrewManNH

I have a question which I think I didn't explained clearly,

How do you save GUI3 in a Autoit or .exe file on the desktop when GUI3 button is clicked and to navigate back to GUI2?

Thank You

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