findDisplay: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "description.ext" to "description.ext") |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
Line 19: | Line 19: | ||
|descr= Finds a display by its IDD which can either be defined in [[missionConfigFile]] ([[Description.ext|description.ext]]) or [[configFile]] ([[config.cpp]])<br> | |descr= Finds a display by its IDD which can either be defined in [[missionConfigFile]] ([[Description.ext|description.ext]]) or [[configFile]] ([[config.cpp]])<br> | ||
If the specified display | If the specified display cannot be found, [[displayNull]] is returned. | ||
{{Feature|important|Dedicated servers and [[Arma 3 Headless Client|headless clients]] don't have a primary display (e.g {{ic|findDisplay 46}} will return [[displayNull]]).<br> | |||
Detect both with the [[hasInterface]] command.}} | |||
{{ Feature | | {{Feature|informative|For a list of (almost) all {{arma3}}'s IDDs, see [[Arma 3: IDD List]].}} | ||
|s1= [[findDisplay]] idd | |s1= [[findDisplay]] idd | ||
Line 42: | Line 41: | ||
}} | }} | ||
{{Note | |||
|user= Lou Montana | |||
|timestamp= 20190707122000 | |||
|text= Common IDDs: | |||
* 46: Mission display | |||
* 312: Zeus display | |||
* 49: Pause menu | |||
* 602: Inventory | |||
* 24: Chat box | |||
* 300: Weapon state | |||
* 12: Map | |||
* 160: UAV Terminal | |||
}} | |||
{{Note | |||
|user= Kronzky | |||
|timestamp= 20090615191000 | |||
|text= [[findDisplay]] does ''not'' find displays defined under RscTitles (even when they are visible).<br> | |||
To access those types of displays, either assign the resource to a global variable, or pass its [[Magic Variables#this_2|this]] value to a script, during the onLoad event: | To access those types of displays, either assign the resource to a global variable, or pass its [[Magic Variables#this_2|this]] value to a script, during the onLoad event: | ||
e.g. <syntaxhighlight lang="cpp"> | e.g. <syntaxhighlight lang="cpp"> | ||
class RscTitles { | class RscTitles | ||
{ | |||
class MyRsc | |||
{ | |||
onLoad = "myDisplay = (_this select 0)"; | |||
// or | |||
// onLoad = "_this execVM 'myDialog.sqf'"; | |||
// ... | |||
}; | |||
}; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
You can then use the stored value as you would for regular dialogs: | You can then use the stored value as you would for regular dialogs: | ||
<code>(myDisplay [[displayCtrl]] 1111) [[ctrlSetText]] "hello there");</code> | <code>(myDisplay [[displayCtrl]] 1111) [[ctrlSetText]] "hello there");</code> | ||
}} | |||
{{Note | |||
|user= IT07 | |||
|timestamp= 20170625093200 | |||
|text= I have tested the behavior of this command and I found out that it [ findDisplay ] appears to only return the display AFTER any onLoad event handler of that display is done. So, using findDisplay inside an onLoad event handler is useless. | |||
}} | |||
{{Note | |||
|user= Demellion | |||
|timestamp= 20170814122200 | |||
|text= There are some specific cases, where [[findDisplay]] will not be able to find an existing display. Here's the cases and how to act on them:<br> | |||
<syntaxhighlight lang="cpp"> | |||
// Your display has IDD= -1. | |||
There are some specific cases, where | |||
<syntaxhighlight lang="cpp">// Your display has IDD= -1. | |||
class RscDisplayNew | class RscDisplayNew | ||
{ | { | ||
idd = -1; | idd = -1; | ||
scriptName = "RscDisplayNew"; | scriptName = "RscDisplayNew"; | ||
... | // ... | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<syntaxhighlight lang="cpp">// Your display doesn't have IDD | <syntaxhighlight lang="cpp"> | ||
// Your display doesn't have IDD | |||
class RscDisplayNew | class RscDisplayNew | ||
{ | { | ||
scriptName = "RscDisplayNew"; | scriptName = "RscDisplayNew"; | ||
... | // ... | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<syntaxhighlight lang="cpp">// Your display doesn't have scriptname with IDD = -1 | <syntaxhighlight lang="cpp"> | ||
// Your display doesn't have scriptname with IDD = -1 | |||
class RscDisplayNew | class RscDisplayNew | ||
{ | { | ||
idd = -1; | idd = -1; | ||
... | // ... | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<syntaxhighlight lang="cpp">// Your display doesn't have scriptname, neither IDD | <syntaxhighlight lang="cpp"> | ||
// Your display doesn't have scriptname, neither IDD | |||
class RscDisplayNew | class RscDisplayNew | ||
{ | { | ||
... | // ... | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 140: | Line 126: | ||
# You can really have this display seeking it manually in a [[allDisplays]] return. This is experimental, but working option. | # You can really have this display seeking it manually in a [[allDisplays]] return. This is experimental, but working option. | ||
# You will have a problem finding this display, since this display doesn't exist even in [[allDisplays]](?) return. Behaviour unknown. | # You will have a problem finding this display, since this display doesn't exist even in [[allDisplays]](?) return. Behaviour unknown. | ||
}} | |||
Revision as of 19:11, 22 November 2021
Description
- Description:
- Finds a display by its IDD which can either be defined in missionConfigFile (description.ext) or configFile (config.cpp)
If the specified display cannot be found, displayNull is returned. - Groups:
- GUI Control
Syntax
- Syntax:
- findDisplay idd
- Parameters:
- idd: Number
- Return Value:
- Display
Examples
- Example 1:
[] spawn { waitUntil { !isNull findDisplay 46 }; hint "Mission Display is now available!"; };
- Example 2:
_display = findDisplay 1;
Additional Information
- See also:
- allDisplaysdisplayCtrlcreateDisplaycreateDialogdialogdisplayNullcontrolNullisNullcreateDisplayctrlCreatedisplayParent
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 Jul 07, 2019 - 12:20 (UTC)
-
Common IDDs:
- 46: Mission display
- 312: Zeus display
- 49: Pause menu
- 602: Inventory
- 24: Chat box
- 300: Weapon state
- 12: Map
- 160: UAV Terminal
- Posted on Jun 15, 2009 - 19:10 (UTC)
-
findDisplay does not find displays defined under RscTitles (even when they are visible).
To access those types of displays, either assign the resource to a global variable, or pass its this value to a script, during the onLoad event: e.g.class RscTitles { class MyRsc { onLoad = "myDisplay = (_this select 0)"; // or // onLoad = "_this execVM 'myDialog.sqf'"; // ... }; };
You can then use the stored value as you would for regular dialogs:
(myDisplay displayCtrl 1111) ctrlSetText "hello there");
- Posted on Jun 25, 2017 - 09:32 (UTC)
- I have tested the behavior of this command and I found out that it [ findDisplay ] appears to only return the display AFTER any onLoad event handler of that display is done. So, using findDisplay inside an onLoad event handler is useless.
- Posted on Aug 14, 2017 - 12:22 (UTC)
-
There are some specific cases, where findDisplay will not be able to find an existing display. Here's the cases and how to act on them:
// Your display has IDD= -1. class RscDisplayNew { idd = -1; scriptName = "RscDisplayNew"; // ... };
// Your display doesn't have IDD class RscDisplayNew { scriptName = "RscDisplayNew"; // ... };
// Your display doesn't have scriptname with IDD = -1 class RscDisplayNew { idd = -1; // ... };
// Your display doesn't have scriptname, neither IDD class RscDisplayNew { // ... };
- You actually can find a -1 display, but this means finding a display with this IDD might be a problem, when there are a few displays marked as -1.So as you can see, theres an entry called scriptName. You can get a reference to this display by using uiNamespace:
(uiNamespace getVariable "RscDisplayNew")
NOTE: Variables are overwritten with a reference of the last declared display under the same scriptName entry. Take a look at case 3 for solution. - Displays without IDD's can actually exist. They can be manipulated only in a way described in the first case using uiNamespace.
- You can really have this display seeking it manually in a allDisplays return. This is experimental, but working option.
- You will have a problem finding this display, since this display doesn't exist even in allDisplays(?) return. Behaviour unknown.
- You actually can find a -1 display, but this means finding a display with this IDD might be a problem, when there are a few displays marked as -1.So as you can see, theres an entry called scriptName. You can get a reference to this display by using uiNamespace:
Categories:
- Scripting Commands
- Introduced with Armed Assault version 1.00
- ArmA: Armed Assault: New 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