buttonSetAction: Difference between revisions
Lou Montana (talk | contribs) m (Text replacement - "\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^ ]*)<\/code>" to "$1$2</code>")  | 
				Lou Montana (talk | contribs)  m (Text replacement - "\]  +\[" to "] [")  | 
				||
| (9 intermediate revisions by 2 users not shown) | |||
| Line 28: | Line 28: | ||
|eff= local  | |eff= local  | ||
|descr= Set the action of a control of the currently active user dialog. The script statement is executed on button release and {{hl|_this}} is available, but contains ""; See [[Arma: GUI Configuration]] for more information about user dialogs. Works with:  | |descr=    | ||
{{Feature|obsolete|Use [[ctrlAddEventHandler]] instead.}}  | |||
Set the action of a control of the currently active user dialog. The script statement is executed on button release and {{hl|_this}} is available, but contains ""; See [[Arma: GUI Configuration]] for more information about user dialogs. Works with:  | |||
* [[CT_BUTTON]]  | * [[CT_BUTTON]]  | ||
* [[CT_XBUTTON]]  | * [[CT_XBUTTON]]  | ||
| Line 34: | Line 36: | ||
* [[CT_SHORTCUTBUTTON]]  | * [[CT_SHORTCUTBUTTON]]  | ||
|s1= [[buttonSetAction]]   | |s1= [[buttonSetAction]] [idc, action]  | ||
|p1= idc: [[Number]] -   | |p1= idc: [[Number]] - button IDC  | ||
|p2= action: [[String]] - '''[[SQS Syntax|SQS]]''' code body that should be executed when the button/active text is clicked  | |p2= action: [[String]] - '''[[SQS Syntax|SQS]]''' code body that should be executed when the button/active text is clicked  | ||
| Line 44: | Line 46: | ||
|s2= control [[buttonSetAction]]  action  | |s2= control [[buttonSetAction]]  action  | ||
|p21= control:  [[Control]] -   | |p21= control:  [[Control]] - button control  | ||
|p22= action:  [[String]] - '''[[SQS Syntax|SQS]]''' code body that should be executed when the button/active text is clicked  | |p22= action:  [[String]] - '''[[SQS Syntax|SQS]]''' code body that should be executed when the button/active text is clicked  | ||
| Line 50: | Line 52: | ||
|r2= [[Nothing]]  | |r2= [[Nothing]]  | ||
|x1= <  | |x1= <sqf>buttonSetAction [100, "player exec ""reply.sqs"""];</sqf>  | ||
|x2= <  | |x2= <sqf>_ctrl buttonSetAction "if (alive bob) then {hint 'alive'} else {hint 'dead'}"; // SQF but SQS compatible, see SQS</sqf>  | ||
|x3= Script is SQS<  | |x3= Script is [[SQS Syntax|SQS]]:  | ||
<sqs>_control buttonSetAction "hint format ['Is SQS: %1', !isNil '_time']"</sqs>  | |||
|seealso= [[buttonAction]]  | |seealso= [[buttonAction]]  | ||
}}  | }}  | ||
{{Note  | |||
|user= Kungtotte  | |||
|timestamp= 20091005162300  | |||
|text= When using buttonSetAction for an ActiveText control from a script, you cannot use any variables local to the script in it.  | |||
<sqf>  | |||
/* This will print 'any bar' in the hint box,  | |||
When using buttonSetAction for an ActiveText control from a script, you cannot use any variables local to the script in it.  | |||
<  | |||
  since _foo has no value according to buttonSetAction */  |   since _foo has no value according to buttonSetAction */  | ||
_foo = "foo";  | _foo = "foo";  | ||
buttonSetAction [100, "  | buttonSetAction [100, "hint format [""%1 bar"", _foo];"];  | ||
</sqf>  | |||
}}  | |||
{{Note  | |||
|user= Molaron  | |||
|timestamp= 20160215101500  | |||
|text= This command does not overwrite the button's action that was set via "action" in the {{hl|.hpp}} of the dialog.  | |||
This command does not overwrite the button's action that was set via "action" in the .hpp of the dialog  | }}  | ||
{{Note  | |||
|user= Nomisum  | |||
|timestamp= 20160611192400  | |||
|text= To use variables local to the defining script, a syntax like the one below needs to be used:  | |||
To use variables local to the defining script, a syntax like the one below needs to be used:  | <sqf>  | ||
<  | _foo = "foo";  | ||
buttonSetAction [100, format ["  | buttonSetAction [100, format ["hint '%1 bar'", _foo]];  | ||
works! thanks to Kronzky for commenting this workaround in the VBS wiki  | </sqf>  | ||
works! thanks to [[User:Kronzky|Kronzky]] for commenting this workaround in the VBS wiki  | |||
}}  | |||
Latest revision as of 11:46, 5 May 2024
Description
- Description:
 - 
Set the action of a control of the currently active user dialog. The script statement is executed on button release and _this is available, but contains ""; See Arma: GUI Configuration for more information about user dialogs. Works with:
 - Groups:
 - GUI Control
 
Syntax
- Syntax:
 - buttonSetAction [idc, action]
 - Parameters:
 - idc: Number - button IDC
 - action: String - SQS code body that should be executed when the button/active text is clicked
 - Return Value:
 - Nothing
 
Alternative Syntax
- Syntax:
 - control buttonSetAction action
 - Parameters:
 - control: Control - button control
 - action: String - SQS code body that should be executed when the button/active text is clicked
 - Return Value:
 - Nothing
 
Examples
- Example 1:
 - buttonSetAction [100, "player exec ""reply.sqs"""];
 - Example 2:
 - _ctrl buttonSetAction "if (alive bob) then {hint 'alive'} else {hint 'dead'}"; // SQF but SQS compatible, see SQS
 - Example 3:
 - Script is SQS:
_control buttonSetAction "hint format ['Is SQS: %1', !isNil '_time']"
 
Additional Information
- See also:
 - buttonAction
 
Notes
- 
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note 
- Posted on Oct 05, 2009 - 16:23 (UTC)
 - 
When using buttonSetAction for an ActiveText control from a script, you cannot use any variables local to the script in it.
/* This will print 'any bar' in the hint box, since _foo has no value according to buttonSetAction */ _foo = "foo"; buttonSetAction [100, "hint format [""%1 bar"", _foo];"];
 
- Posted on Feb 15, 2016 - 10:15 (UTC)
 - This command does not overwrite the button's action that was set via "action" in the .hpp of the dialog.
 
- Posted on Jun 11, 2016 - 19:24 (UTC)
 - To use variables local to the defining script, a syntax like the one below needs to be used: works! thanks to Kronzky for commenting this workaround in the VBS wiki
 
Categories: 
- Scripting Commands
 - Introduced with Operation Flashpoint version 1.75
 - Operation Flashpoint: New Scripting Commands
 - Operation Flashpoint: Scripting Commands
 - Operation Flashpoint: Elite: Scripting Commands
 - ArmA: Armed Assault: Scripting Commands
 - Arma 2: Scripting Commands
 - Arma 2: Operation Arrowhead: Scripting Commands
 - Take On Helicopters: Scripting Commands
 - Arma 3: Scripting Commands
 - Command Group: GUI Control
 - Scripting Commands: Local Effect