Error Messages/43538

< Error Messages
Revision as of 22:18, 6 October 2015 by Lchrisman (talk | contribs) (Created page with "== Error message = :The OnClick attribute of the Button Bu1 recursively calls itself. A recursion is not allowed in a Button OnClick attribute. == Cause == You can "run" a...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

= Error message

The OnClick attribute of the Button Bu1 recursively calls itself. A recursion is not allowed in a Button OnClick attribute.

Cause

You can "run" a button Bu1 from another button Bu2 by simply using Bu1's identifier by itself as an expression. But you can't tell a button to "run" itself, either directly or indirectly. So, for example, if you have two buttons with the following OnClick attributes, this error would result:

OnClick Bu1 := Bu2
OnClick Bu2 := Bu1

This would be an example of Bu1 indirectly running itself, since it runs Bu2, but Bu2 then runs Bu1.

When you do this, it almost certainly means you made a mistake.

Passing a handle parameter

One instance where this mistake is easy to make is when your button script is calling a function that accepts a handle parameter. Your function might want the calling button to identify itself, for example, but you forget to surround the parameter with a call to the Handle function.

Function HandleButtonPress( buttonPressed : handle )
...
Button Bu1
OnClick : HandleButtonPress(Bu1)       { oops! }

This causes the error because the parameter to HandleButtonPress gets evaluated as part of calling the function, causing a virtual recursive button press in the process. The correct calling syntax here would be

Button Bu1
OnClick : HandleButtonPress( Handle(Bu1) )

See Also

Comments


You are not allowed to post comments.