Using VBA Forms within iFIX

One concept that you should keep in mind when launching forms from iFIX is the idea of modal and modeless forms. A form is modal if it does not allow you to work with its host application while it is being displayed. Conversely, if a form is modeless it allows you to work with its host application even while it is displayed.

If you launch a modal form from a VBA script within iFIX, users must respond to the form before they can continue working with the iFIX environment (which includes selecting menus, toolbars, objects in a picture, and so forth). No subsequent code is executed until the form is hidden or unloaded. When a form is modeless, all subsequent code is executed as it is encountered.

WARNING: Never try to unload a form from within the same form, or from any control within the form. Instead, call the Hide method from within the form, and unload it from the main routine once it is hidden.

Modeless forms do not appear in the task bar and are not in the window tab order. To call a modeless form, use the following code:

userForm1.Show vbModeless

 

NOTE: You may lose data associated with a modeless UserForm if you make a change to the UserForm project that causes it to recompile, for example, removing a code module.

When using a modeless form, if you do not want to allow the user to get to the WorkSpace, use the DeActivateWorkspaceUI which essentially disables the WorkSpace UI. For more information, see the DeActivateWorkspaceUI method topic in the iFIX Automation Interfaces Electronic Book.

Inserting an Alarm Summary object into a VBA form may cause unpredictable results when opening the picture or switching environments from run-time to configuration or vice versa.