Forms
Form components provide the user interface for Uniface desktop applications. They are always executed on the client system and can be modal (form retains focus until it is closed) or non-modal (users can switch focus to other forms).
Forms provide functionality needed for the user to interact with the application, including retrieving, viewing, and modifying data. Business logic can be delegated to services. Forms are stateful and (usually) have persistent access to the underlying database.
The Form development object defines the data that the runtime component accesses, as well as the layout and appearance of the form and its data. Form components provide or support the following features:
- Rich set of Windows-based widgets whose appearance can be dynamically controlled in ProcScript. For more information, see Widgets for Forms and Reports.
- Nested forms, that enable you to embed a non-modal form within another non-modal form, such as in a master-detail construction or tabbed dialog. For more information, see ucontainer (FormContainer).
- Popup forms, which can be used in situations where you want to display or gather a limited amount of data, for example, in a ribbon (as seen in Microsoft Office applications) or context-sensitive documentation. For more information, see Popup Forms .
- Form-specific menus and toolbars that make use of centrally-defined menu functionality located in Menu and Panel objects. For more information, see Menu Objects and Panels.
- Drag and drop support. Uniface provides several mechanisms for implementing drag and drop behavior, including both widgets and drag-and-drop formats. For more information, see Drag and Drop Behavior .
- Layout control, making it possible for the layout to be correctly scaled and formatted in response to changes made by the user. For more information, see Split Bars and Area Frames and Lines.
Form components can also be used for character-based applications , although not all functionality is supported.
Compiling a form component creates an executable runtime object with the extension .frm. The runtime engine uses this object to create an instance of the form.