buttonSetAction: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
Lou Montana (talk | contribs) m (Text replacement - "\] +\[" to "] [") |
||
(62 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{RV|type=command | ||
| ofp | | |game1= ofp | ||
|version1= 1.75 | |||
|1. | |game2= ofpe | ||
|version2= 1.00 | |||
| | |game3= arma1 | ||
|version3= 1.00 | |||
| | |game4= arma2 | ||
|version4= 1.00 | |||
| | |game5= arma2oa | ||
|version5= 1.50 | |||
| | |game6= tkoh | ||
|version6= 1.00 | |||
| | |game7= arma3 | ||
| | |version7= 0.50 | ||
| | |gr1= GUI Control | ||
| | |arg= local | ||
| | |eff= local | ||
|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_XBUTTON]] | |||
* [[CT_ACTIVETEXT]] | |||
* [[CT_SHORTCUTBUTTON]] | |||
|s1= [[buttonSetAction]] [idc, action] | |||
|p1= idc: [[Number]] - button IDC | |||
|p2= action: [[String]] - '''[[SQS Syntax|SQS]]''' code body that should be executed when the button/active text is clicked | |||
|r1= [[Nothing]] | |||
|s2= control [[buttonSetAction]] action | |||
|p21= control: [[Control]] - button control | |||
|p22= action: [[String]] - '''[[SQS Syntax|SQS]]''' code body that should be executed when the button/active text is clicked | |||
|r2= [[Nothing]] | |||
|x1= <sqf>buttonSetAction [100, "player exec ""reply.sqs"""];</sqf> | |||
|x2= <sqf>_ctrl buttonSetAction "if (alive bob) then {hint 'alive'} else {hint 'dead'}"; // SQF but SQS compatible, see SQS</sqf> | |||
|x3= Script is [[SQS Syntax|SQS]]: | |||
<sqs>_control buttonSetAction "hint format ['Is SQS: %1', !isNil '_time']"</sqs> | |||
|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> | |||
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, | /* This will print 'any bar' in the hint box, | ||
since _foo has no value according to buttonSetAction */ | since _foo has no value according to buttonSetAction */ | ||
_foo = "foo"; | _foo = "foo"; | ||
buttonSetAction [100, "hint format[""%1 bar"", _foo];"];</ | 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. | |||
}} | |||
{{Note | |||
|user= Nomisum | |||
|timestamp= 20160611192400 | |||
|text= To use variables local to the defining script, a syntax like the one below needs to be used: | |||
<sqf> | |||
_foo = "foo"; | |||
buttonSetAction [100, format ["hint '%1 bar'", _foo]]; | |||
</sqf> | |||
works! thanks to [[User:Kronzky|Kronzky]] for commenting this workaround in the VBS wiki | |||
}} | |||
To use variables local to the defining script, a syntax like the one below needs to be used: | |||
< | |||
buttonSetAction [100, format["hint '%1 bar'", _foo]]; | |||
</ | |||
works! thanks to 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