Sign in to follow this  
Followers 0
Rikko

Gui auto clicks on buttons

4 posts in this topic

I have a problem with my script, it auto click on $button with is not created yet..

#include <GUIConstantsEx.au3>

Global $List, $Button, $ListButton
$MainGUI = GUICreate('MyGui', 400, 300)
GUISetState()

_list('1')

Func _Bilder($Value)
$Button = GUICtrlCreateButton('Test', 20, 20, 120, 60)
EndFunc ;==>_Bilder

Func _list($ListValue)
$ListButton = GUICtrlCreateButton("Test", 200, 20)
$List = GUICtrlCreateList('Test', 20, 20)
EndFunc ;==>_list

While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $ListButton
MsgBox(0, '', 'List')
Case $Button
MsgBox(0, '', 'Button')
EndSwitch
WEnd

The problem is when i run the script it launches the func _list but when it enters the loop with the switch, it trigger the $button witch is only created in the _button func.

Why does it do this and how do i fiks it?

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Hello, welcome to the forum!

The "$Button" had not yet been created!

#include <GUIConstantsEx.au3>

Global $List, $Button, $ListButton
$MainGUI = GUICreate('MyGui', 400, 300)
GUISetState()

_Bilder(1)
_list('1')

While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $ListButton
MsgBox(0, '', 'List')
Case $Button
MsgBox(0, '', 'Button')
EndSwitch
WEnd

Func _Bilder($Value)
$Button = GUICtrlCreateButton('Test', 20, 20, 120, 60)
EndFunc ;==>_Bilder

Func _list($ListValue)
$ListButton = GUICtrlCreateButton("Test", 200, 20)
$List = GUICtrlCreateList('Test', 20, 20)
EndFunc ;==>_list

Regards,

João Carlos.

Edited by JScript

http://forum.autoitbrasil.com/ (AutoIt v3 Brazil!!!)

Somewhere Out ThereJames Ingram

somewh10.png

dropbo10.pngDownload Dropbox - Simplify your life!
Your virtual HD wherever you go, anywhere!

Share this post


Link to post
Share on other sites

Untill you create the button $Button = 0 which is the value that GUIGetMsg() returns when ther is no message in the que.

Change you message loop to this to fix the problem

While 1
    $msg = GUIGetMsg()
        Switch $msg
            Case 0
                ContinueLoop
            Case $GUI_EVENT_CLOSE
                 ExitLoop
            Case $ListButton
                 MsgBox(0, '', 'List')
            Case $Button
                 MsgBox(0, '', 'Button')
       EndSwitch
WEnd

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning."- Rick Cook

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

Untill you create the button $Button = 0 which is the value that GUIGetMsg() returns when ther is no message in the que.

Change you message loop to this to fix the problem

While 1
$msg = GUIGetMsg()
Switch $msg
Case 0
ContinueLoop
Case $GUI_EVENT_CLOSE
ExitLoop
Case $ListButton
MsgBox(0, '', 'List')
Case $Button
MsgBox(0, '', 'Button')
EndSwitch
WEnd

Thank you.

Just adding $Button = 1 at the beginning fixed it..

So if i understad it right: when i create a variable with $Button = Guictrlcreatebutton('') then when i click on the button Autoit sets the $button = 0 then the case is looking for the $Button = 0

Hello, welcome to the forum!

The "$Button" had not yet been created!

#include <GUIConstantsEx.au3>

Global $List, $Button, $ListButton
$MainGUI = GUICreate('MyGui', 400, 300)
GUISetState()

_Bilder(1)
_list('1')

While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $ListButton
MsgBox(0, '', 'List')
Case $Button
MsgBox(0, '', 'Button')
EndSwitch
WEnd

Func _Bilder($Value)
$Button = GUICtrlCreateButton('Test', 20, 20, 120, 60)
EndFunc ;==>_Bilder

Func _list($ListValue)
$ListButton = GUICtrlCreateButton("Test", 200, 20)
$List = GUICtrlCreateList('Test', 20, 20)
EndFunc ;==>_list

Regards,

João Carlos.

This did not help because the $Button should not yet be created Edited by Rikko

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