The Properties List Control

The Properties Panel’s first tab page and the object Column Properties page use a properties list control, which allows you to list, view and change properties. This control is specially designed for interacting with properties.

Property Grouping

Properties may be organized in two ways: Categorized or Alphabetical. Two buttons located at the top of the property list controls this organization.

Categorized

This ordering is selected by pressing the first button above the property list. When selected the properties are listed by categories. Within each group the properties are listed in alphabetical orders.

Each property is assigned a property category by setting the Category method meta-tag. Some of the categories that are defined are Access, Appearance, Behavior, Data, Error Handling, Help and Report.

If a property is defined directly in an object and not in a class, it is automatically categorized as “Object Defined”

When properties are grouped by category you can expand or contract any group of properties by double clicking on the category name or by clicking on the “+” or “-” symbols on the left hand side of the category name.

Alphabetical

This ordering is selected by pressing the second button above the property list. When selected the properties are listed in alphabetical order and category names are not listed.

The Properties List Divider

A divider separates the two columns. This divider can be adjusted by either dragging the divider or by pressing the ctrl-left and ctrl-right arrow keys.

Navigating the Properties List

The Tab and Shift Tab keys are used to navigate across columns.

If the keyboard focus is in the first column of the property list you can navigate up and down the list using navigation keys (up / down / home / end).  If you enter text while within the first column the focus will switch to second column and the characters will be applied to that column.

Editing Property Values

If the keyboard focus is in the second column the control assumes that you wish to edit the property value and the up / down / left / right arrow keys (including ctrl) are applied to the text in the selected cell.

If the column contains a list of choices a drop down list will be available. In addition to mouse selection, the list can be open and closed used selecting the Alt-Down and Alt-Up arrow keys. The up and down arrow keys, will navigate through the list of choices. Double clicking on the cell will also rotate through the list of options.

If you type in a new property value, pressing the Enter key or switching cells will apply the new value.

Some properties are read-only and cannot be edited

Setting Object and Class Properties

Property Values

If the property is an image-based property the Image Selector will be available.

If the property is a theme-based property the Skin Selector will be available.

When a property value is changed the source code is immediately updated with the change. If a component displayed in the visual designer is impacted by this change, it will be updated as well.

String Values

Property string values are not listed with quotes. When a string value is changed the Studio will add the quotes to the source code automatically using either single or double quotes as required.  Therefore you should not enclose quotes around a string value. If you do, the Studio will assume that the quotes should be part of the string’s value and embed them in your string.

If a string property is defined in source as either a constant or an expression (e.g. “Set Label to C_$Ok”, “Set Label to (AssignLabel(self))” ) then that property value will be displayed in the property panel as-is and editing of this value will be disabled. If you need to change this type of property value, you can do so directly by editing this source code. This restriction was created to avoid confusion that occurs when the Studio would attempt to determine if text is a constant or string literal.  For example:

// This is a constant and must be maintained in the source

Set Label to C_$OK

// This is a normal string and can be maintained in the Property panel

Set Label to "C_$Ok"

 

Folded Properties

DataFlex has a number of folded integer properties that require two values to be set but are returned as a single complex value (e.g. size, location). These properties are shown in a single line with the two values separated by a comma (e.g. 12;23) and can be edited as such. These lines can be expanded by selecting the “+” key to the left of the property name. When expanded both values are displayed and can edited by as individual values.

Folded are properties are defined by using the FoldedProperty method meta-tag in the class definition.

Color Properties

Properties that represent RGB colors contain a special drop down list that contains a choice of symbolic names for all of the standard and system colors. In addition, the first choice in the drop list  “<Color Selector…>” invokes a color selector dialog allowing you to select any color you want.

A property is defined as being a color property by using the PropertyType=Color method meta tag in the class definition.

Initial Property Values

A property can be reset to its initial value by selecting a property, right clicking in the first column and selecting the “Reset Initial Value” menu item. Setting a property back to its initial value actually removes the Set statement from your source code.

Initial property values are defined when a default is defined in a property command or by the use of the InitalValue method meta-tag.

Setting Table Attributes

Attribute Names

The name of the attribute “property” is the attribute name used by the Get_Attribute and Set_Attribute commands.

Attribute Values

An attribute can only be edited if the table is opened in the Table Editor and if table editing is allowed for the workspace and table. Many of the table attributes are read-only Note that changing an attribute may change other related attributes.

String Values

Attributes string values are not listed with quotes.  

See Also

Properties

Column Properties

Image Selector

Skin Selector