Progress
Programming
Handbook


Using Widget Handles

To allow you to reference instantiated widgets within an application, Progress assigns each widget a unique widget handle. A widget handle is a pointer to the widget. Progress provides the WIDGET–HANDLE data type to support widget-handle variables and fields (in temporary tables and work tables).

NOTE: Progress also provides handles to procedures with the HANDLE data type. For more informatigon, see Block Properties."

You can find the handle for a specific widget using the HANDLE attribute. An attribute is a named widget characteristic. You can reference a handle attribute for a widget using this syntax:

SYNTAX
widget-reference :handle-attribute [ IN container-widget ] 

For a static widget, the initial widgetreference is the name you use to describe the widget, possibly qualified by the widget type. For a dynamic widget, it is the widget-handle variable you use to describe the widget. The handleattribute is any attribute that returns a widget handle value. The containerwidget parameter specifies the container widget for widgetreference, if there is more than one. (For more information on referencing and using attributes, see the "Widget Attributes" section.)

For example, if you want to find the widget handle for a database field displayed in a named frame, you can use a code fragment like the following to retrieve the value of the HANDLE attribute for the widget used to display the field.

DEFINE VARIABLE myhand AS WIDGET-HANDLE.

FIND FIRST customer.

DISPLAY customer.name WITH FRAME name-frame.

myhand  = customer.name:HANDLE IN FRAME name-frame. 

Many other attributes, such as PARENT or FRAME, return widget-handle values. For more information on the HANDLE attribute and other widget-handle attributes, see the Progress Language Reference .

You can obtain the handle for any widget that is instantiated. For information on describing and instantiating static widgets, see the "Static Widgets" section. For information on dynamic widgets, see the "Dynamic Widgets" section.


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095