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 temlate 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
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 to the prototype will be applied to 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 created) always in the PmgInstance
object by filling in the "Prototype name
Usually is necessary to ensure that instances created from the same prototype are slightly different. There can be for example different texts, bindings to values ... For this purpose the Parameters of the Pmg object
can be used, by defining a set of parameters and then the specific instance sets the real value of these parameters, valid for the corresponding instance. For defining the parameters of the PmgPrototype
objects serves the "Pmg object parameters
" configurator. For reference to the Pmg
object parameters the Macro expression $.par
can be used in the configurators 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).