Try OpenEdge Now
skip to main content
GUI for .NET Programming
Using .NET Forms with ABL Windows : Embedding ABL windows in .NET forms : Elements of an embedded ABL window
 

Elements of an embedded ABL window

When you embed an ABL window in a .NET form, all of the frames that are attached to the window (and their child widgets) can be displayed in the client area of the form. No other widgets or components of the ABL window become part of the associated form. Thus, the following components of an embedded ABL window never appear in its host form:
*Menu and submenu widgets — You must implement all menus for the form as .NET menu and toolbar objects. For an example of a .NET form that implements menus and toolbars, see Sample ABL-derived .NET MDI form.
Note: Using the traditional OpenEdge GUI, ABL applications implement toolbars using widgets displayed in the client area of an ABL window. Therefore, these ABL-implemented toolbars appear in the host form.
*Border controls — You must implement all border controls for the host form using .NET form properties and methods.
*Message area — Any messages that you currently display in the message area of the embedded window (using MESSAGE statements) are displayed in a separate ABL window or in ABL alert boxes, depending on MESSAGE statement options.
*Status area — Any ABL messages otherwise displayed in the status area of the embedded window are ignored.
After you embed an ABL window in a .NET form, the host form controls the basic presentation and availability of embedded frames on the screen. However, the ABL session controls most aspects of the appearance and behavior of these frames and all related widgets within the form client area, including frame scrolling. This means that once the host form is displayed, you can control and interact with the behavior of these widgets using ABL widget attributes, methods, and events.
This enhances the benefit of embedding ABL windows in forms because you can maintain all of your existing ABL code that controls and manages the embedded widgets. However, if you later decide to replace these widgets with .NET controls, you must entirely implement the .NET form using .NET controls.
In addition, when you embed an ABL window, the functions of its own attributes, methods, and events are retained, changed, or ignored by the ABL session, depending on the element. Basically, those elements related to window features that the ABL session still controls continue to provide a function, where as those related to window features replaced by form features either provide a modified function or are ignored by the ABL session.