Form Design
The Design node (AxFormDesign) is the root of a form's visual layout. It contains the entire control tree — every group, tab, grid, field, button, and action pane that the user sees. The design node also holds form-level visual properties such as the form style, caption, window type, and sizing behaviour.
The design inherits from AxFormControlWithChildren, meaning it is itself a container that holds child controls. All controls in the form are descendants of this single design node.
Form Patterns
Every form design should follow a form pattern. A pattern is a predefined control-tree structure that the framework validates at compile time and that ensures visual and behavioural consistency across the application.
The Pattern and PatternVersion properties on the design node identify which pattern is applied. When a pattern is set, the Best Practice checker validates that the control tree matches the expected structure (e.g., a DetailsFormMaster pattern expects an Action Pane, a Header Group, Lines Grid, and so on).
Always apply a form pattern to new forms. Patterned forms receive automatic layout, responsive behaviour, and accessibility support. Freeform (unpatterned) forms require manual layout management and are not recommended for new development.
For a complete reference on all form patterns — Details Master, Details Transaction, Simple List, Dialog, Workspace, and more — including their variations, structural diagrams, and example forms, see the Form Patterns section.
Control Tree Structure
The design node contains child controls arranged in a hierarchy. Container controls (groups, tabs, grids, action panes) can themselves contain child controls. Leaf controls (strings, dates, checkboxes, buttons) display or capture a single value.
Container Controls
| Control Type | AOT Type | Purpose |
|---|---|---|
| Group | AxFormGroupControl | Groups related controls together. Renders as a FastTab, a frame, or a section depending on the form pattern. |
| Tab | AxFormTabControl | A tabbed container with multiple tab pages. Each tab page is a separate visual panel. |
| Tab Page | AxFormTabPageControl | A single page within a tab control. Functions as a collapsible FastTab in many patterns. |
| Grid | AxFormGridControl | A data-bound grid displaying multiple records in rows and columns. Binds to a data source. |
| Action Pane | AxFormActionPaneControl | The ribbon-style toolbar at the top of the form containing action buttons. |
| Action Pane Tab | AxFormActionPaneTabControl | A tab within the action pane that groups related buttons. |
| Button Group | AxFormButtonGroupControl | Groups buttons within an action pane tab. |
Data-Bound Input Controls
| Control Type | AOT Type | Purpose |
|---|---|---|
| String | AxFormStringControl | A text input field bound to a string field or EDT. |
| Integer | AxFormIntegerControl | A numeric input for integer values. |
| Int64 | AxFormInt64Control | A numeric input for 64-bit integer values (e.g., RecId). |
| Real | AxFormRealControl | A numeric input for decimal values. |
| Date | AxFormDateControl | A date picker control. |
| Time | AxFormTimeControl | A time input control. |
| DateTime | AxFormDateTimeControl | A combined date and time picker. |
| ComboBox | AxFormComboBoxControl | A dropdown list bound to an enum field. |
| CheckBox | AxFormCheckBoxControl | A boolean toggle bound to a NoYes field. |
| Reference Group | AxFormReferenceGroupControl | A composite lookup control for foreign-key reference fields. |
| Segmented Entry | AxFormSegmentedEntryControl | A multi-segment control for financial dimensions and account structures. |
Display and Navigation Controls
| Control Type | AOT Type | Purpose |
|---|---|---|
| Static Text | AxFormStaticTextControl | A read-only text label. |
| Image | AxFormImageControl | Displays an image from a resource or data field. |
| Button | AxFormButtonControl | A pushbutton that executes an action. |
| Menu Function Button | AxFormMenuFunctionButtonControl | A button that opens a menu item (form, report, or class). |
| Command Button | AxFormCommandButtonControl | A button bound to a system command (Save, Delete, New, etc.). |
| Menu Button | AxFormMenuButtonControl | A dropdown button containing multiple child menu items. |
Example: Typical Control Hierarchy
Below is the control tree for a simplified SimpleList pattern form:
Design (AxFormDesign, Style = SimpleList, Pattern = SimpleList)
├── ActionPane (AxFormActionPaneControl)
│ └── ActionPaneTab (AxFormActionPaneTabControl)
│ └── ButtonGroup (AxFormButtonGroupControl)
│ ├── NewButton (AxFormCommandButtonControl, Command = New)
│ └── DeleteButton (AxFormCommandButtonControl, Command = DeleteRecord)
└── Grid (AxFormGridControl, DataSource = MyTable)
├── AccountNum (AxFormStringControl, DataSource = MyTable, DataField = AccountNum)
├── Name (AxFormStringControl, DataSource = MyTable, DataField = Name)
└── Status (AxFormComboBoxControl, DataSource = MyTable, DataField = Status)
Properties
The design node combines layout, styling, and behavioural properties.
| Property | Display Name | Type | Description |
|---|---|---|---|
| Name | Name | String | The name of the element. |
| Tags | Tags | String | Tags for this element separated by semicolon. |
| Pattern | Pattern | String | Identifies the form pattern applied to this design. |
| PatternVersion | PatternVersion | String | The version of the applied pattern. |
| Style | Style | FormStyle | Specifies the style of the form. The specified value can affect other properties. Values: Auto (0), DetailsFormMaster (1), Dialog (2), DropDialog (3), ListPage (4), Lookup (5), SimpleList (6), SimpleListDetails (7), FormPart (8), DetailsFormTransaction (9), TableOfContents (10), Dashboard (11), EntityPage (12), Sitemap (13), Workspace (14), SimpleDetails (15), TaskSingle (16), TaskDouble (17), Wizard (18), Report (19). |
| Caption | Caption | String | Specifies the heading that appears on the form. Use a pre-defined label when possible. |
| UseCaptionFromMenuItem | Use Caption From Menu Item | NoYes | Specifies whether to replace the form caption with the label from the calling menu item when the form is opened. Values: No (0), Yes (1). |
| TitleDataSource | Title Data Source | String | Specifies the data source to be used for the form caption. |
| DataSource | Data Source | String | Specifies the data source that is used to obtain data for the form. |
| Mode | Mode | FormMode_ITxt | Data entry mode. Values: Watch (0), Edit (1), Add (2), Delete (3). |
| ViewEditMode | View Edit Mode | ViewEditMode | Sets the form in either View or Edit mode. Values: Auto (0), View (1), Edit (2). |
| WindowType | Window Type | WindowType_ITxt | Specifies the type of window used to display the form. Values: Standard (0), Popup (1), ListPage (2), Workspace (3), ContentPage (4), Slider (5). |
| Frame | Frame | FormFrame_ITxt | Form frame style. Values: Standard (0), Dialog (1), Border (2), None (3). |
| WindowResize | Window Resize | WindowResize_ITxt | Allow resize of the form window. Values: Auto (0), Dynamic (1), Fixed (2). |
| LeftMode | Left Mode | FormLeftMode | Horizontal position of form or control. Values: AutoLeft (0), AutoRight (1), LeftEdge (2), RightEdge (3), Center (4), Manual (5). |
| Left | Left | Int32 | Horizontal position of form or control. |
| TopMode | Top Mode | FormTopMode | Vertical position of form or control. Values: Auto (0), TopEdge (1), BottomEdge (2), Center (3), Manual (4). |
| Top | Top | Int32 | Vertical position of form or control. |
| WidthMode | Width Mode | FormWidthHeightMode | Width of form or control. Values: Auto (0), Column (1), SizeToContent (2), SizeToAvailable (3), Manual (4). |
| Width | Width | Int32 | Width of form or control. |
| HeightMode | Height Mode | FormWidthHeightMode | Height of form or control. Values: Auto (0), Column (1), SizeToContent (2), SizeToAvailable (3), Manual (4). |
| Height | Height | Int32 | Height of form or control. |
| Visible | Visible | NoYes | Make control visible. Values: No (0), Yes (1). |
| MaximizeBox | Maximize Box | NoYes | Determines whether a form has a maximize box in the upper-right corner of its caption bar. Values: No (0), Yes (1). |
| MinimizeBox | Minimize Box | NoYes | Determines whether a form has a minimize box in the upper-right corner of its caption bar. Values: No (0), Yes (1). |
| SaveSize | Save Size | NoYes | Save size of form. Values: No (0), Yes (1). |
| AlwaysOnTop | Always On Top | NoYes | Should the form always be displayed as the top window? Values: No (0), Yes (1). |
| HideToolbar | Hide Toolbar | NoYes | Determines whether the Toolbar and Menu should be shown on forms with a WindowType of Standard. Values: No (0), Yes (1). |
| ShowNewButton | Show New Button | AutoNoYes | Specifies whether the system-defined New button is visible on the form. Values: No (0), Yes (1), Auto (99). |
| ShowDeleteButton | Show Delete Button | AutoNoYes | Specifies whether the system-defined Delete button is visible on the form. Values: No (0), Yes (1), Auto (99). |
| SetCompany | Set Company | NoYes | Specifies whether the system should change the session company when the form gets focus. Values: No (0), Yes (1). |
| AllowFormCompanyChange | Allow Form Company Change | NoYes | Specifies whether the form supports company changes when used as a child form with a cross-company dynalink. Values: No (0), Yes (1). |
| AllowDocking | Allow Docking | NoYes | Allow the form to be glued to the edges of the main window. Values: No (0), Yes (1). |
| AllowUserSetup | Allow User Setup | AllowUserSetup_ITxt | Specifies whether a user can move and change properties of the controls on a form. Values: No (0), Restricted (1), Yes (2). |
| NewRecordAction | New Record Action | String | Specifies the action to execute when a New command or task is initiated by the form. |
| WorkflowEnabled | Workflow Enabled | NoYes | Specifies whether to show the workflow menu bar on the form. Values: No (0), Yes (1). |
| WorkflowDataSource | Workflow Data Source | String | Specifies the root data source for a workflow on the form. |
| WorkflowType | Workflow Type | String | Specifies the workflow type to use to enable workflow for the form. |
| StatusBarStyle | Status Bar Style | StatusBarStyle | Determines how the Status bar displays on forms with a WindowType of Standard. Values: Auto (0), None (1), Simple (2), Full (3), SimpleWithoutClose (4). |
| Scrollbars | Scrollbars | AutoNoYes | Specifies whether scrollbars will be enabled. Values: No (0), Yes (1), Auto (99). |
| ArrangeMethod | Arrange Method | ArrangeMethod_ITxt | Specifies how controls are arranged in the form. Values: Auto (0), HorizontalWrap (1), HorizontalRight (2), HorizontalLeft (3), Vertical (4), None (5). |
| ArrangeWhen | Arrange When | ArrangeWhen_ITxt | When to arrange controls on the container control. Values: Default (0), Auto (1), OnStartup (2), OnDemand (3), Never (4). |
| ColumnsMode | Columns Mode | FormColumnsMode | Specifies how the number of columns is calculated. Values: Fill (0), Fixed (1). |
| Columns | Columns | Int32 | Specifies the number of columns when ColumnsMode = Fixed. |
| HideIfEmpty | Hide If Empty | NoYes | Auto-hide the container if all contained controls are non-visible. Values: No (0), Yes (1). |
| AlignChildren | Align Children | NoYes | Align child controls. Values: No (0), Yes (1). |
| AlignChild | Align Child | NoYes | Include in general alignment. Values: No (0), Yes (1). |
| ColorScheme | Color Scheme | ColorScheme_ITxt | Color setting. Values: Default (0), WindowsPalette (1), RGB (2). |
| Font | Font | String | The font for control text. |
| FontSize | Font Size | Int32 | The font size for the text in the control. |
| Bold | Bold | FontWeight_ITxt | The type of bold for the text in the control. Values: Default (0), Thin (1), Extralight (2), Light (3), Normal (4), Medium (5), Semibold (6), Bold (7), Extrabold (8), Heavy (9). |
| Italic | Italic | NoYes | Italicise the text in the control. Values: No (0), Yes (1). |
| Underline | Underline | NoYes | Underline the text in the control. Values: No (0), Yes (1). |
| ImageName | Image Name | String | Name of the image resource for the form. |
| ImageResource | Image Resource | Int32 | Resource ID for the form image. |
| ImageMode | Image Mode | ImageMode_ITxt | Controls how the image is shown. Values: Normal (0), SizeToFit (1), SideBySide (2), Center (3). |
| TopMarginMode | Top Margin Mode | FormAutoMode | Size of top margin. Values: Auto (0), Fixed (1). |
| TopMargin | Top Margin | Int32 | Size of top margin. |
| BottomMarginMode | Bottom Margin Mode | FormAutoMode | Size of bottom margin. Values: Auto (0), Fixed (1). |
| BottomMargin | Bottom Margin | Int32 | Size of bottom margin. |
| LeftMarginMode | Left Margin Mode | FormAutoMode | Size of left margin. Values: Auto (0), Fixed (1). |
| LeftMargin | Left Margin | Int32 | Size of left margin. |
| RightMarginMode | Right Margin Mode | FormAutoMode | Size of right margin. Values: Auto (0), Fixed (1). |
| RightMargin | Right Margin | Int32 | Size of right margin. |
| ColumnSpaceMode | Column Space Mode | FormAutoMode | Space between columns. Values: Auto (0), Fixed (1). |
| ColumnSpace | Column Space | Int32 | Space between columns. |