buttonSetAction: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
m (Text replacement - "\<dt class\=\"note\"\>\'\'\'\[\[(.*)\]\]\'\'\'" to "<dt class="note">$1")
(18 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{Command|Comments=
____________________________________________________________________________________________
____________________________________________________________________________________________


| ofp |= Game name
| ofp |Game name=


|1.5|= Game version
|1.5|Game version=


|arg= local |= Arguments in MP
|arg= local |Multiplayer Arguments=


|eff= local |= Effects in MP
|eff= local |Multiplayer Effects=
____________________________________________________________________________________________
____________________________________________________________________________________________


| Set the action of a control of the currently active user dialog. Can be used for buttons and active texts. See [[Dialog Control]] for more information about user dialogs. |= Description
| Set the action of a control of the currently active user dialog. Can be used for buttons and active texts. See [[Arma: GUI Configuration]] for more information about user dialogs. Works with:
* CT_BUTTON
* CT_XBUTTON
* CT_ACTIVETEXT
* CT_SHORTCUTBUTTON
{{warning | The action code is expected to be in '''[[SQS]]''' format}} |DESCRIPTION=
____________________________________________________________________________________________
____________________________________________________________________________________________


| '''buttonSetAction''' [idc, action] |= Syntax
| '''buttonSetAction''' [idc, action] |SYNTAX=
|p1= [idc, action]: [[Array]] |= Parameter 1
|p1= [idc, action]: [[Array]] |PARAMETER1=
|p2= idc: [[Number]] - control ID |= Parameter 2
|p2= idc: [[Number]] - control ID |PARAMETER2=
|p3= action: [[String]] - code body that should be executed when the button/active text is clicked |= Parameter 3
|p3= action: [[String]] - [[SQS]] code body that should be executed when the button/active text is clicked |PARAMETER3=
| [[Nothing]] |= Return value
| [[Nothing]] |RETURNVALUE=


|s2= control '''buttonSetAction''' action |= Syntax
|s2= control '''buttonSetAction''' action |SYNTAX2=
|p21= control:  [[Control]]|= Parameter 1
 
|p22= action:  [[String]]|= Parameter 2
|p21= control:  [[Control]] - button control|PARAMETER21=
|r2= [[Nothing]] |= Return value
|p22= action:  [[String]] - [[SQS]] code body that should be executed when the button/active text is clicked |PARAMETER2=
|r2= [[Nothing]] |RETURNVALUE2=
____________________________________________________________________________________________
____________________________________________________________________________________________
   
   
|x1= <pre>buttonSetAction [100, "player exec ""reply.sqs"""]</pre> |= Example 1
|x1= <code>[[buttonSetAction]] [100, "[[player]] [[exec]] ""reply.sqs"""];</code> |EXAMPLE1=
|x2= <code>_ctrl [[buttonSetAction]] "[[if]] ([[alive]] bob) [[then]] {[[hint]] 'alive'} [[else]] {[[hint]] 'dead'}"; // SQF but SQS compatible, see [[SQS]]</code> |EXAMPLE2=
____________________________________________________________________________________________
____________________________________________________________________________________________


| [[buttonAction]], [[ctrlActivate]] |= See also
| [[buttonAction]], [[ctrlActivate]] |SEEALSO=


}}
}}
Line 37: Line 44:
<!-- Note Section BEGIN -->
<!-- Note Section BEGIN -->
<dd class="notedate">Posted on October 5, 2009 - 16:23
<dd class="notedate">Posted on October 5, 2009 - 16:23
<dt class="note">'''[[User:Kungtotte|kungtotte]]'''<dd class="note">
<dt class="note">[[User:Kungtotte|kungtotte]]<dd class="note">
When using buttonSetAction for an ActiveText control from a script, you cannot use any variables local to the script in it.
When using buttonSetAction for an ActiveText control from a script, you cannot use any variables local to the script in it.
<pre><nowiki>
<pre><nowiki>
Line 55: Line 62:
[[Category:Scripting Commands OFP 1.96|BUTTONSETACTION]]
[[Category:Scripting Commands OFP 1.96|BUTTONSETACTION]]
[[Category:Scripting Commands ArmA|BUTTONSETACTION]]
[[Category:Scripting Commands ArmA|BUTTONSETACTION]]
[[Category:Scripting Commands ArmA2|BUTTONSETACTION]]
[[Category:Scripting Commands Arma 2|BUTTONSETACTION]]
[[Category:Command_Group:_GUI_Control|BUTTONSETACTION]]
[[Category:Command_Group:_GUI_Control|BUTTONSETACTION]]
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Take On Helicopters|{{uc:{{PAGENAME}}}}]]


<!-- CONTINUE Notes -->
<!-- CONTINUE Notes -->
Line 67: Line 74:
<dd class="note">
<dd class="note">
This command does not overwride the buttonaction which was set via "action" in the hpp of the dialog
This command does not overwride the buttonaction which was set via "action" in the hpp of the dialog
</dd>
</dl>
<!-- DISCONTINUE Notes -->
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on June 11, 2016 - 19:24 (UTC)</dd>
<dt class="note">[[User:Nomisum|Nomisum]]</dt>
<dd class="note">
To use variables local to the defining script, a syntax like the one below needs to be used:
<code>_foo = "foo";
buttonSetAction [100, format["hint '%1 bar'", _foo]];
</code>
works! thanks to Kronzky for commenting this workaround in the VBS wiki
</dd>
</dd>
</dl>
</dl>
<!-- DISCONTINUE Notes -->
<!-- DISCONTINUE Notes -->

Revision as of 16:36, 17 May 2020

Hover & click on the images for description

Description

Description:
Set the action of a control of the currently active user dialog. Can be used for buttons and active texts. See Arma: GUI Configuration for more information about user dialogs. Works with:
  • CT_BUTTON
  • CT_XBUTTON
  • CT_ACTIVETEXT
  • CT_SHORTCUTBUTTON
The action code is expected to be in SQS format
Groups:
Uncategorised

Syntax

Syntax:
buttonSetAction [idc, action]
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:
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

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

Notes

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];"];

Bottom Section

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