Two or more objects can be drawn at the same place on the display. When one object is the child of another object, the child is always drawn on top of its ancestor. When two objects are siblings, however, either because they are defined as offspring of the same parent object or because they are children of the screen, then it is the priority of the objects that determines which is drawn on top of the other. An object with a higher priority will be drawn on top of an object with a lower priority. If two siblings have the same priority, the last one added or modified will be on top. Therefore you should always assign appropriate priority numbers to objects that overlay one another. However, note that keys and sense regions cannot appear on top of sibling dialog regions.
Children of desktop cannot be assigned any priorities. Objects in desktop will always appear on top of the primary region. If two secondary regions overlap in desktop, the last one added will appear on top.
A priority number can be specified as any integer value: the larger the number, the higher the priority. If you do not assign a priority, the default priority of 0 is used for the object. In the key definitions below:
red key RedBox at position 200 100
solid box 400 400
blue key BlueEllipse at position 400 300
priority is 2
ellipse major 100 minor 300
BlueEllipse is assigned a priority of 2;
RedBox has the default priority of 0.
BlueEllipse is therefore on top of RedBox.
What you see on the screen is RedBox beneath BlueEllipse. Both objects have the attribute of visibility, but the lower priority of RedBox places it beneath BlueEllipse.
You can change the priority of objects during runtime with the change priority action statement. Continuing with the example shown above, if the priority of RedBox is changed so that it has a higher priority than BlueEllipse:
change RedBox priority to 3
RedBox is on top of BlueEllipse, as shown below.
What is now displayed is the entire box, with the ends of the ellipse extending above and below it.