Sign in to follow this  
Followers 0
cappy2112

How to get Global scope working?

11 posts in this topic

I've got two functions. THe first one creates a Gui window with 2 controls.

The second funciton is just the event handler for the button press.

I want to add text to the label in the Gui, based on the events tha occur when the button is pressed.

I've added Global $Label_2 outside of both functions, but I can't get the Label to disply the text, after calling

GuitCtrilSetData()

What am I doing wrong ?

opt("GUIOnEventMode", 1)

GuiShow()

Global $Label_2

Func GuiShow()

Local $Button_1

;Local $Label_2

Local $WindowID

#region --- GuiBuilder code Start ---

; Script generated by AutoBuilder 0.5 Prototype

If Not IsDeclared('WS_CLIPSIBLINGS') Then Global $WS_CLIPSIBLINGS = 0x04000000

$WindowID = GUICreate("MyGUI", 392, 316, (@DesktopWidth - 392) / 2, (@DesktopHeight - 316) / 2, $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)

$Button_1 = GUICtrlCreateButton("Browse Destination Directory", 90, 190, 170, 60)

$Label_2 = GUICtrlCreateLabel("Label2", 0, 140, 360, 40)

GUICtrlSetOnEvent($Button_1, "OnOpenDirectoryBrowser")

GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit")

GUISetState()

While 1

Sleep(1000)

WEnd

#endregion --- GuiBuilder generated code End ---

EndFunc ;==>GuiShow

Func OnOpenDirectoryBrowser()

Local $Filter = "All (*.*)"

Local $DefaultDir = "C:\Documents and Settings\Tony\My Documents\src\Python\SYNTHS\G2\Automation\Testdumps"

Local $SelectedPath = ""

Local $szDrive, $szDir, $szFName, $szExt

Local $TestPath = ""

$SelectedPath = FileOpenDialog("SELECT DESTINATION DIRECTORY", $DefaultDir, $Filter, 8, "PatchBankXXX")

$TestPath = _PathSplit ($SelectedPath, $szDrive, $szDir, $szFName, $szExt)

_ArrayDisplay($TestPath, "Demo _PathSplit()")

GUICtrlSetData($Label_2, $TestPath[1] & $TestPath[2])

EndFunc ;==>OnOpenDirectoryBrowser

Share this post


Link to post
Share on other sites



i dont have your function _pathsplit()

but this works

#include <GUIConstants.au3>
opt("GUIOnEventMode", 1)


$WindowID = GUICreate("MyGUI", 392, 316, (@DesktopWidth - 392) / 2, (@DesktopHeight - 316) / 2, $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)

$Button_1 = GUICtrlCreateButton("Browse Destination Directory", 110, 190, 170, 60)
$Label_2 = GUICtrlCreateLabel("Label2", 10, 140, 360, 40)

GUICtrlSetOnEvent($Button_1, "OnOpenDirectoryBrowser")
GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit")

GUISetState()

While 1
    Sleep(20)
WEnd


Func OnOpenDirectoryBrowser()

Local $Filter = "All (*.*)"
Local $DefaultDir = "C:\Documents and Settings\Tony\My Documents\src\Python\SYNTHS\G2\Automation\Testdumps"
Local $SelectedPath = ""
Local $szDrive, $szDir, $szFName, $szExt
Local $TestPath = ""



$SelectedPath = FileOpenDialog("SELECT DESTINATION DIRECTORY", $DefaultDir, $Filter, 8, "PatchBankXXX")
;$TestPath = _PathSplit ($SelectedPath, $szDrive, $szDir, $szFName, $szExt)
;_ArrayDisplay($TestPath, "Demo _PathSplit()")
;GUICtrlSetData($Label_2, $TestPath[1] & $TestPath[2])
GUICtrlSetData($Label_2, "this is a test"); test

EndFunc;==>OnOpenDirectoryBrowser

Func OnExit()
    Exit
EndFunc

remove my test and the ";" for your function(s)

8)


NEWHeader1.png

Share this post


Link to post
Share on other sites

@Val - _PathSpit is in my Beta Help... (Weird, because I had to write one 2 weeks ago... so I don't know which release it was in (Using .99 now))

Also, seems that Valik fixed a bug with it here: http://www.autoitscript.com/forum/index.ph...topic=19927&hl=


[center]Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.[/center]

Share this post


Link to post
Share on other sites

i dont have your function _pathsplit()

but this works

#include <GUIConstants.au3>
opt("GUIOnEventMode", 1)
$WindowID = GUICreate("MyGUI", 392, 316, (@DesktopWidth - 392) / 2, (@DesktopHeight - 316) / 2, $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)

$Button_1 = GUICtrlCreateButton("Browse Destination Directory", 110, 190, 170, 60)
$Label_2 = GUICtrlCreateLabel("Label2", 10, 140, 360, 40)

GUICtrlSetOnEvent($Button_1, "OnOpenDirectoryBrowser")
GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit")

GUISetState()

While 1
    Sleep(20)
WEnd
Func OnOpenDirectoryBrowser()

Local $Filter = "All (*.*)"
Local $DefaultDir = "C:\Documents and Settings\Tony\My Documents\src\Python\SYNTHS\G2\Automation\Testdumps"
Local $SelectedPath = ""
Local $szDrive, $szDir, $szFName, $szExt
Local $TestPath = ""
$SelectedPath = FileOpenDialog("SELECT DESTINATION DIRECTORY", $DefaultDir, $Filter, 8, "PatchBankXXX")
;$TestPath = _PathSplit ($SelectedPath, $szDrive, $szDir, $szFName, $szExt)
;_ArrayDisplay($TestPath, "Demo _PathSplit()")
;GUICtrlSetData($Label_2, $TestPath[1] & $TestPath[2])
GUICtrlSetData($Label_2, "this is a test"); test

EndFunc;==>OnOpenDirectoryBrowser

Func OnExit()
    Exit
EndFunc

remove my test and the ";" for your function(s)

8)

I get a runtime error in the OpenDirectoryBrowser() func

Variable used without being declared.:

It can't see $Label_2 even though it's declared global

Share this post


Link to post
Share on other sites

@Val - _PathSpit is in my Beta Help... (Weird, because I had to write one 2 weeks ago... so I don't know which release it was in (Using .99 now))

Also, seems that Valik fixed a bug with it here: http://www.autoitscript.com/forum/index.ph...topic=19927&hl=

I'm using .99 also- just got it a few days ago.

I hope I have the one with the fixed bug in it

Share this post


Link to post
Share on other sites

Considering that post I sent you to was today, I doubt it's in your release... but it looks like he supplied some code you can use.


[center]Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.[/center]

Share this post


Link to post
Share on other sites

I fixed _PathFull(), not _PathSplit().

Share this post


Link to post
Share on other sites

I fixed _PathFull(), not _PathSplit().

Ahh... sorry Valik, I had not used either, and only glanced at it quickly, and then saw this post... Thanks for the clarification.


[center]Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.[/center]

Share this post


Link to post
Share on other sites

I get a runtime error in the OpenDirectoryBrowser() func

Variable used without being declared.:

It can't see $Label_2 even though it's declared global

Does anyone have any thoughts why $LAbel_2 can't be seen in the event handler, even though it is declared GLoba?

Share this post


Link to post
Share on other sites

I've got two functions. THe first one creates a Gui window with 2 controls.

The second funciton is just the event handler for the button press.

I want to add text to the label in the Gui, based on the events tha occur when the button is pressed.

I've added Global $Label_2 outside of both functions, but I can't get the Label to disply the text, after calling

GuitCtrilSetData()

What am I doing wrong ?

opt("GUIOnEventMode", 1)

GuiShow()

Global $Label_2

AutoIt will not have seen $Label_2 as being Global at the time that you use GUICtrlSetData($Label_2, $TestPath[1] & $TestPath[2]).

You are calling GuiShow() before the declaration of Global $Label_2. Try moving Global $Label_2 to the top of the script before you call GuiShow().

Share this post


Link to post
Share on other sites

AutoIt will not have seen $Label_2 as being Global at the time that you use GUICtrlSetData($Label_2, $TestPath[1] & $TestPath[2]).

You are calling GuiShow() before the declaration of Global $Label_2. Try moving Global $Label_2 to the top of the script before you call GuiShow().

Thanks

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