Try OpenEdge Now
skip to main content
GUI for .NET Programming
Using .NET Forms with ABL Windows : ABL session architecture for forms and windows : FormProxy objects

FormProxy objects

ABL provides the Progress.Windows.FormProxy class solely as a form object for referencing each ABL window that you create in a session. A FormProxy object has no visualization of its own and serves only to provide the ProWinHandle property used to access its associated ABL window and the PrevForm and NextForm properties to reference that ABL window on the form chain. When an ABL session references .NET forms in any way, the AVM automatically creates a FormProxy object for each ABL window that you create. For example, such a reference can include querying the FIRST-FORM or LAST-FORM attribute on the SESSION handle, even if you have not yet instantiated any .NET forms in the session. If the first reference to a .NET form occurs after ABL windows are already created, the AVM also automatically creates the necessary FormProxy objects retroactively.
You cannot directly instantiate a FormProxy object or explicitly delete an existing FormProxy object using the DELETE OBJECT statement, and any attempt to do so raises a run-time error. ABL automatically deletes any FormProxy object associated with an ABL window, when you delete the window using the DELETE OBJECT statement.
In addition to linking all windows that you create together with the forms that you create on the form chain, ABL uses the FormProxy object to identify its associated ABL window when that window is the most recent form or window to receive focus in a session. For more information on identifying the most recent form or window to receive focus, see Handling form and window input.
Note: ABL does not create a FormProxy object to reference the default window for an ABL session. GUI applications typically do not use the default window and you can access the default window, if necessary, using the DEFAULT-WINDOW system handle. For more information on this system handle in an ABL session accessing .NET forms, see Table 9.