Jump to content

two GUIS simultaniously


Recommended Posts

It's not at all difficult. You can have as many GUIs from one script as you want. Each GuiCreate() returns a unique handle to be used for further processing in either GuiGetMsg() or event modes. If you use a message loop, you'll want it to use the advanced flag (see help file) so you know which GUI the message came from.

:mellow:

Edit: Added fun demo:

#include <GuiConstantsEx.au3>

GuiCreate("Test Multiple GUIs", 300, 300, Random(100, @DesktopWidth - 400, 1), Random(100, @DesktopHeight - 400))
GUICtrlCreateButton("CREATE", 100, 100, 100, 30)
GUICtrlCreateButton("DELETE", 100, 200, 100, 30)
GUISetState()

Do
    $aMsg = GUIGetMsg(1) ; 1 = advanced mode
    Select
        Case $aMsg[0] = $GUI_Event_CLOSE
            GUIDelete($aMsg[1])

        Case ControlGetText($aMsg[1], "", $aMsg[2]) = "CREATE"
            GuiCreate("Test Multiple GUIs", 300, 300, Random(100, @DesktopWidth - 400, 1), Random(100, @DesktopHeight - 400))
            GUICtrlCreateButton("CREATE", 100, 100, 100, 30)
            GUICtrlCreateButton("DELETE", 100, 200, 100, 30)
            GUISetState()

        Case ControlGetText($aMsg[1], "", $aMsg[2]) = "DELETE"
            GUIDelete($aMsg[1])
    EndSelect
Until Not WinExists("Test Multiple GUIs", "")

:P

Edited by PsaltyDS
Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Link to comment
Share on other sites

elaborate on the "context menu" part please O_o

i'm searching the help file as we speak

right but when i open a form

$form1 guicreate

$form2 guicreate

etc and try to show them both at same time only 1 will display with data from both, and ive made sure to use only set variables to establish "dialog ids"

this i assume was his issue

Link to comment
Share on other sites

@psalty: if i got your code correctly,

ControlGetText(<GuiGetMsg variable>, <the text it should expect>, <the variable into which the text is read>) = "<the text>"

am i right?

edit: crud, i'm using images instead of buttons. this doesn't seem to work well on images....

Edited by GodForsakenSoul
Link to comment
Share on other sites

GuiGetMsg() is returning an array ($aMsg in my demo). The handle of the window is in $aMsg[1] and the handle of the control is in $aMsg[2].

So the effect is:

ControlGetText(<handle of the window>, "", <handle of the control>) = "<Text To Match>"

The message (maybe control ID) is in $aMsg[0], but I didn't bother to save those anywhere for future reference when creating the controls, so I don't bother checking it.

:mellow:

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Link to comment
Share on other sites

i see. that was rather educational, but the GUI i'm building is using images instead of buttons because in this case, buttons would look ugly.

the problem of course, is that .bmp's, even if they have text, autoit can't read it.

can i do the same, except with the switch koda offers by default?

will i still get the gui's handle when i press it?

Link to comment
Share on other sites

i see. that was rather educational, but the GUI i'm building is using images instead of buttons because in this case, buttons would look ugly.

the problem of course, is that .bmp's, even if they have text, autoit can't read it.

can i do the same, except with the switch koda offers by default?

will i still get the gui's handle when i press it?

when u make a gui ctrl do it like this

$Button1 = GUICtrlCreateButton("", 400, 24, 145, 25)

$Button2 = GUICtrlCreateButton("", 400, 0, 145, 25)

then in the event switch all u do is

Switch $nMsg[0]

$case $button 1

button data

$case button 2

button data

endswitch

does that make sense or am i explaining it badly lol

Link to comment
Share on other sites

i see. that was rather educational, but the GUI i'm building is using images instead of buttons because in this case, buttons would look ugly.

the problem of course, is that .bmp's, even if they have text, autoit can't read it.

Then keep track of the ControlIDs/Handles of the controls you create and test for those in your loop.

can i do the same, except with the switch koda offers by default?

will i still get the gui's handle when i press it?

You have been around here too long to still be asking that kind of question. Koda-dependency is stunting your growth.

:mellow:

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
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...