Member attributes: VariantOf

This attribute determines the project member to override by a particular variant member.

Syntax

unit‑name::class‑nameorunit‑name::class‑variant‑name

unit‑name::constant‑nameorunit‑name::constant‑variant‑name

unit‑name::autoobject‑nameorunit‑name::autoobject‑variant‑name

unit‑name::bitmap‑resource‑nameorunit‑name::bitmap‑resource‑variant‑name

unit‑name::font‑resource‑nameorunit‑name::font‑resource‑variant‑name

Discussion

The attribute VariantOf determines the original member to override by a particular class, autoobject, constant, bitmap resource or font resource variant member. Once overridden, the variant member can retrospectively adapt, extend or even completely substitute the original member. For example, a class variant can modify the implementation of the original class member.

The derivation of variants provides the fundamental technique to manage several product and design variants within one and the same GUI application. The selection of the appropriate variant occurs automatically depending on the condition specified in the VariantCond attribute of the corresponding variant member.

The value of the attribute VariantOf must be composed of two identifiers: the name of the unit containing the original member definition and the name of the member itself, both separated by :: (double colon). It is also possible for one variant member to be derived from another variant resulting in a forked variant hierarchy similar to the inheritance hierarchy of classes.

Modify the attribute

To inspect or modify the value of a VariantOf attribute, select first the affected class, autoobject, constant, bitmap resource or font resource variant member. Thereupon, the attribute is listed in the middle area of Inspector. Please note the available assistant you can activate by clicking on the button right to the attribute. The assistant lists all members, the variant member may override: