The object represents a graphic prototype (template of graphic instances), where multiple
Pmg objects can be inserted. It is similar to the
PmgBox object, but the difference is that it exists only in the development environment. It is used as a template for creating copies of the content of the prototype, by the
PmgInstance object, that represents the instance of such prototype content.
The simplified idea of
PmgPrototype and
PmgInstance objects functionality is that when the panel is being compiled, the content of the prototype is copied into all corresponding instances, that use this prototype.
The main advantage of the prototype-instance concept is that any modification done in the prototype will be included in all instances automatically. The content of the original prototype exists only in the development environment, does not exist in the running application. Only the prototype copies exist in all corresponding instances. The
PmgPrototype object cannot be selected
in the graphics editor (as other
Pmg objects can). This object is selected (or is created) always in the
PmgInstance object by filling in the "
Prototype name" configurator.
Parameterized prototypes: Usually is necessary to ensure that instances created from the same prototype are slightly different. There can be for example different texts, data bindings ... For this purpose the
Parameters of the Pmg object can be used, by defining a set of parameters in the prototype and then the specific instance sets the real value of these parameters, valid for the corresponding instance. For defining the parameters of the
PmgPrototype and
PmaInstance objects serves the "
Pmg object parameters" configurator. For reference to the
Pmg object parameters the
Macro expression $.par can be used in configurators of the object and for the scripts the
PmgObject.GetPar method can be used. The important fact for detecting the parameter value is that when detecting the value of a specific parameter, the parameter is searched from the current object through the parents by a cascade way (bubbling).