buttonSetAction: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\| *((\[\[.*\]\],? ?)+) * \}\}" to "|seealso= $1 }}")
m (Text replacement - "SQS" to "SQS")
Line 16: Line 16:
* CT_ACTIVETEXT
* CT_ACTIVETEXT
* CT_SHORTCUTBUTTON
* CT_SHORTCUTBUTTON
{{Feature | Warning | The action code is expected to be in '''[[SQS]]''' format}}
{{Feature | Warning | The action code is expected to be in '''[[SQS Syntax|SQS]]''' format}}


| '''buttonSetAction''' [idc, action]
| '''buttonSetAction''' [idc, action]
|p1= [idc, action]: [[Array]]
|p1= [idc, action]: [[Array]]
|p2= idc: [[Number]] - control ID
|p2= idc: [[Number]] - control ID
|p3= action: [[String]] - [[SQS]] code body that should be executed when the button/active text is clicked
|p3= action: [[String]] - [[SQS Syntax|SQS]] code body that should be executed when the button/active text is clicked
| [[Nothing]]
| [[Nothing]]


Line 27: Line 27:


|p21= control:  [[Control]] - button control
|p21= control:  [[Control]] - button control
|p22= action:  [[String]] - [[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
|r2= [[Nothing]]
|r2= [[Nothing]]
   
   
|x1= <code>[[buttonSetAction]] [100, "[[player]] [[exec]] ""reply.sqs"""];</code>
|x1= <code>[[buttonSetAction]] [100, "[[player]] [[exec]] ""reply.sqs"""];</code>
|x2= <code>_ctrl [[buttonSetAction]] "[[if]] ([[alive]] bob) [[then]] {[[hint]] 'alive'} [[else]] {[[hint]] 'dead'}"; // SQF but SQS compatible, see [[SQS]]</code>
|x2= <code>_ctrl [[buttonSetAction]] "[[if]] ([[alive]] bob) [[then]] {[[hint]] 'alive'} [[else]] {[[hint]] 'dead'}"; // SQF but SQS compatible, see [[SQS Syntax|SQS]]</code>
|x3= Script is SQS<code>_control [[buttonSetAction]] "[[hint]] [[format]] ['Is SQS: %1', ![[isNil]] '_time']";</code>
|x3= Script is SQS<code>_control [[buttonSetAction]] "[[hint]] [[format]] ['Is SQS: %1', ![[isNil]] '_time']";</code>



Revision as of 00:06, 25 March 2021

Hover & click on the images for description

Description

Description:
Description needed
Groups:
GUI Control

Syntax

Syntax:
Syntax needed
Parameters:
[idc, action]: Array
idc: Number - control ID
action: String - SQS code body that should be executed when the button/active text is clicked
Return Value:
Return value needed

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:
buttonActionctrlActivate

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 October 5, 2009 - 16:23
kungtotte
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 February 15, 2016 - 10:15 (UTC)
Molaron
This command does not overwride the buttonaction which was set via "action" in the hpp of the dialog
Posted on June 11, 2016 - 19:24 (UTC)
Nomisum
To use variables local to the defining script, a syntax like the one below needs to be used: _foo = "foo"; buttonSetAction [100, format["hint '%1 bar'", _foo]]; works! thanks to Kronzky for commenting this workaround in the VBS wiki