Many control properties can be used freely regardless of whether the control is in a cluster, even if the cluster is a typedef or strict typedef
Unfortunately the Strings[4] property is not one of these. This property allows you to set a different button text for each of the four possible states 1 of the control
The interaction of the Strings[4] property and the containing cluster is a little complicated, so I’ve laid it out in a table below
Cluster | Typdef Cluster | Strict Typedef Cluster | |
Multiple Text String appears in right-click menu | No | Only in Typedef editor | Only in Typedef editor |
Multiple Strings setting in properties dialog | Yes | Yes | Only in Typedef editor |
Multiple Strings setting propogates to instances | N/A | No | Yes |
Accepts Strings[4] property | Yes – works as expected | Yes – but only first element | Yes – but has no effect |
The Properties pop-up menu appears when you right-click on the control on the Front Panel. It’s only available if you can select the control, so it doesn’t work on a control defined by a strict typedef
As outlined in the table above, neither of the typedef’d options allow you to set different strings for all four states. This code demonstrates the problem
Luckily, there is a simple solution. Turning on VI Scripting2 will enable a number of new properties on the Boolean control, including Multiple Text String. Setting this property to True will allows the Strings[4] property to work as expected