Doug,

Thanks. Very clear and helpful. From your explanation, it seems that calling
a method of an object is the same as calling a sub. Is that correct?


Best regards from Ohio, U.S.A.,

Vic
E-mail: [email protected]

-----Original Message-----
From: Doug Lee [mailto:[email protected]] 
Sent: Saturday, March 10, 2012 11:34 AM
To: [email protected]
Subject: Re: performing a single left mouse click?

You have encountered what I regard as a rather confusing point in
VBScript syntax.

When calling a function and assigning its result to something, you
parenthesize the function's arguments:

x = myFunc(1,2,3)

But when you call a sub, you don't use parens:

mySub 1, 2, 3

Now it just so happens that a single-argument sub call will accept
parens anyway:

mySub(1)

and

mySub 1

do pretty much the same thing.

Well almost...

Putting parens around a single argument forces it to be passed by
value rather than by reference. So

mySub(x)

passes x by value, whereas

mySub x

can pass x by reference.

This confuses people though, because you can see mySub(x) in someone's
code, assume that means parens are acceptable, try mySub(x, y), and
find out there's a hole in that logic. mySub(x), (y) would work,
pointless though that probably is for most applications.

Hth.

On Sat, Mar 10, 2012 at 08:17:40AM -0800, martin webster wrote:
Hi all,
I am trying to perform a single left mouse button click, so I open notepad,
move the mouse to the "I" in file menu, open the immediate mode app, and
issue the following line of VBScript:
Mouse.Click(0, 1)
I get the following error cannot use parenthesis when calling a sub. What's
wrong with the line of code above. When looking at the mouse object Click
method there are parentheses in the method's break down.
Warm regards.
Martin webster.

-- 
Doug Lee, Senior Accessibility Programmer
SSB BART Group - Accessibility-on-Demand
mailto:[email protected]  http://www.ssbbartgroup.com
"While they were saying among themselves it cannot be done,
it was done." --Helen Keller

Reply via email to