createDisplay: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
m (Text replacement - "<sqf>([^↵][^<]*↵[^<]*)<\/sqf>" to "<sqf> $1 </sqf>")
 
(57 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command
____________________________________________________________________________________________


| arma |Game name=
|game1= arma1
|version1= 1.00


|1.00|Game version=
|game2= arma2
|version2= 1.00


|gr1= GUI Control |=GROUP1
|game3= arma2oa
____________________________________________________________________________________________
|version3= 1.50


| Creates child display of given display and loads from "resourceName". The notable difference between [[createDisplay]] and [[createDialog]] is that with [[createDisplay]] the player would be able to move whilst having control of the mouse pointer.<br><br>
|game4= tkoh
Since Arma 3 v1.49.131653 [[createDisplay]] returns [[Display]] and will first look in ''description.ext'' for resourceName config, if not found, it will then look in main config.<br><br>
|version4= 1.00
Displays created with both [[createDisplay]] and [[createDialog]] will take control of the mouse pointer and will close when user presses <tt>Esc</tt>.
<code>_emptyDisplay <nowiki>=</nowiki> [[findDisplay]] 46 [[createDisplay]] "RscDisplayEmpty";</code>
If display is needed which exists independently, it can be created in IGUI layer with [[cutRsc]] command.
<code>"someLayer" [[cutRsc]] ["RscTitleDisplayEmpty", "PLAIN"];
_emptyDisplay <nowiki>=</nowiki> [[uiNamespace]] [[getVariable]] "RscTitleDisplayEmpty";</code>
Such display can be closed with [[closeDisplay]] command or by overwriting the same cut layer with another output. Note that "Unload" EH for some reason does not work with such display. |DESCRIPTION=
____________________________________________________________________________________________


| parent '''createDisplay''' resourceName |SYNTAX=
|game5= arma3
|version5= 0.50


|p1= parent: [[Display]] |PARAMETER1=
|gr1= GUI Control


|p2= resourceName: [[String]] - custom display class defined in [[description.ext]] or existing display class from main config |PARAMETER2=
|descr= Creates child display of given display and loads from "resourceName". The notable difference between [[createDisplay]] and [[createDialog]] is that with [[createDisplay]] the player would be able to move around while the display is shown.<br>
Displays created with [[createDisplay]] or [[createDialog]] will take control of the mouse pointer and will close when user presses {{Controls|Esc}}.
{{Feature|arma3|Since {{arma3}} v1.50 [[createDisplay]] returns [[Display]] and will first look in [[Description.ext|description.ext]] for resourceName config, if not found, it will then look in main config.}}
{{Feature|informative|If an ''overlay'' is needed instead, use [[cutRsc]].}}


| [[Nothing]] or (''Since Arma 3 v1.49.131653'') [[Display]] |RETURNVALUE=
|s1= parent [[createDisplay]] resourceName
____________________________________________________________________________________________
 
|x1= <code>[[findDisplay]] 46 [[createDisplay]] "RscCredits";</code> |EXAMPLE1=


____________________________________________________________________________________________
|p1= parent: [[Display]]


|[[closeDisplay]], [[createDialog]], [[displayCtrl]], [[dialog]], [[displayNull]], [[controlNull]], [[ctrlCreate]], [[displayParent]] |SEEALSO=
|p2= resourceName: [[String]] - custom display class defined in [[Description.ext|description.ext]] or existing display class from main config


}}
|r1= [[Display]] (since {{GVI|arma3|1.50|size= 0.75}}, [[Nothing]] before)


<h3 style="display:none">Notes</h3>
|x1= <sqf>findDisplay 46 createDisplay "RscCredits";</sqf>
<dl class="command_description">
<!-- Note Section BEGIN -->


<!-- Note Section END -->
|x2= <sqf>
</dl>
// creates an empty display
private _emptyDisplay = findDisplay 46 createDisplay "RscDisplayEmpty";
</sqf>


<h3 style="display:none">Bottom Section</h3>
|seealso= [[closeDisplay]] [[createDialog]] [[displayCtrl]] [[dialog]] [[displayNull]] [[controlNull]] [[ctrlCreate]] [[displayParent]]
 
}}
[[Category:Scripting Commands|CREATEDISPLAY]]
[[Category:Scripting Commands Armed Assault|CREATEDISPLAY]]
[[Category:Command_Group:_GUI_Control|{{uc:{{PAGENAME}}}}]]
[[Category:Command_Group:_Interaction|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Take On Helicopters|{{uc:{{PAGENAME}}}}]]
 
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on August 23, 2014 - 23:36 (UTC)</dd>
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
<dd class="note">
Do not simply [[createDisplay]] from UI context code such as "ButtonDown" UI Event handler, as it will crash the game. Instead use [[spawn]] scope:
<code>[] [[spawn]] {[[findDisplay]] 46 [[createDisplay]] "RscCredits"};</code>
</dd>
</dl>
<!-- DISCONTINUE Notes -->


<!-- CONTINUE Notes -->
{{Note
<dl class="command_description">
|user= MrPineapple
<dd class="notedate">Posted on November 15, 2014 - 13:20 (UTC)</dd>
|timestamp= 20141115132000
<dt class="note">[[User:MrPineapple|MrPineapple]]</dt>
|text= When using createDisplay instead of [[createDialog]], all the commands for working with the controls of the display only work with the control version, not the IDC version:
<dd class="note">
<sqf>
Arma3 v1.34
lbAdd [1234, "item"]; // does not work on displays, and won't error either
<br>
_ctrl lbAdd "item"; // does work with displays
<br>
</sqf>
When using CreateDisplay instead of CreateDialog, all the commands for working with the controls of the display only work with the control version, not the IDC version.
<br>
<br>
EXAMPLE:
<code>LbAdd [1234, "item"]; // does not work on displays, and won't error either
_ctrl LbAdd "item"; // does work with displays</code>
<br>
So you have to use the control(DisplayCtrl) and not the IDC.
So you have to use the control(DisplayCtrl) and not the IDC.
|game= arma3
|version= 1.34
}}


</dd>
{{Note
</dl>
|user= Killzone_Kid
<!-- DISCONTINUE Notes -->
|timestamp= 20170629090200
|text= A user dialog created with [[createDisplay]] over mission display ([[findDisplay]] 46) will stop [[displayAddEventHandler|display event handlers]] added to mission display from firing. However if it is created with [[createDialog]] then the event handlers continue to work.
}}


<!-- CONTINUE Notes -->
{{Note
<dl class="command_description">
|user= Target_practice
<dd class="notedate">Posted on July 29, 2017 - 09:02 (UTC)</dd>
|timestamp= 20200621170100
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
|text= Creating a display with the same parent as an existing display will destroy the latter and all of its children. However, their [[User_Interface_Event_Handlers#onUnload|onUnload]], [[User_Interface_Event_Handlers#onChildDestroyed|onChildDestroyed]], and [[User_Interface_Event_Handlers#onDestroy|onDestroy]] event handlers will not fire.
<dd class="note"> A user dialog created with [[createDisplay]] over mission display ([[findDisplay]] 46) will stop [[displayAddEventHandler|display event handlers]] added to mission display from firing. However if it is created with [[createDialog]] then the event handlers continue to work.
}}
</dd>
</dl>
<!-- DISCONTINUE Notes -->


<!-- CONTINUE Notes -->
{{Note
<dl class="command_description">
|user= 7erra
<dd class="notedate">Posted on June 21, 2020 - 17:01 (UTC)</dd>
|timestamp= 20220205154714
<dt class="note">[[User:Target_practice|Target_practice]]</dt>
|text= When trying to create a display with [[createDisplay]] on a non existing display the command will fail silently and return [[displayNull]].
<dd class="note">
}}
Creating a display with the same parent as an existing display will destroy the latter and all of its children. However, their [[User_Interface_Event_Handlers#onUnload|onUnload]], [[User_Interface_Event_Handlers#onChildDestroyed|onChildDestroyed]], and [[User_Interface_Event_Handlers#onDestroy|onDestroy]] event handlers will not fire.
</dd>
</dl>
<!-- DISCONTINUE Notes -->

Latest revision as of 19:42, 3 September 2024

Hover & click on the images for description

Description

Description:
Creates child display of given display and loads from "resourceName". The notable difference between createDisplay and createDialog is that with createDisplay the player would be able to move around while the display is shown.
Displays created with createDisplay or createDialog will take control of the mouse pointer and will close when user presses Esc.
Arma 3
Since Arma 3 v1.50 createDisplay returns Display and will first look in description.ext for resourceName config, if not found, it will then look in main config.
If an overlay is needed instead, use cutRsc.
Groups:
GUI Control

Syntax

Syntax:
parent createDisplay resourceName
Parameters:
parent: Display
resourceName: String - custom display class defined in description.ext or existing display class from main config
Return Value:
Display (since Arma 3 logo black.png1.50, Nothing before)

Examples

Example 1:
findDisplay 46 createDisplay "RscCredits";
Example 2:
// creates an empty display private _emptyDisplay = findDisplay 46 createDisplay "RscDisplayEmpty";

Additional Information

See also:
closeDisplay createDialog displayCtrl dialog displayNull controlNull ctrlCreate displayParent

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
MrPineapple - c
Posted on Nov 15, 2014 - 13:20 (UTC)

When using createDisplay instead of createDialog, all the commands for working with the controls of the display only work with the control version, not the IDC version:

lbAdd [1234, "item"]; // does not work on displays, and won't error either _ctrl lbAdd "item"; // does work with displays
So you have to use the control(DisplayCtrl) and not the IDC.

Killzone_Kid - c
Posted on Jun 29, 2017 - 09:02 (UTC)
A user dialog created with createDisplay over mission display (findDisplay 46) will stop display event handlers added to mission display from firing. However if it is created with createDialog then the event handlers continue to work.
Target_practice - c
Posted on Jun 21, 2020 - 17:01 (UTC)
Creating a display with the same parent as an existing display will destroy the latter and all of its children. However, their onUnload, onChildDestroyed, and onDestroy event handlers will not fire.
7erra - c
Posted on Feb 05, 2022 - 15:47 (UTC)
When trying to create a display with createDisplay on a non existing display the command will fail silently and return displayNull.