Object Controls

Using Object Controls

 

Both Object Enhanced and Object Defined Controls have the property 'ObjectID, which is set to the object that will handle the requests to the control. A value in this property distinguishes an Object Control from a regular control.

See Object Enhanced Controls and Object Defined Controls.

Property References

Whenever an Object Control's property is referenced, the system will first check its associated object to see if it has that property. If so, the system will use the property from the object instead of property in the control. This allows the object to intercept all property accesses external of the application program.

In the case of an Object Defined Control (ODC), all properties for the control must exist within the object, as there is not related system control.

In the case of an Object Enhanced Control (OEC), should the object itself make references to the properties of the control, the reference will be sent directly to the control, not the object itself. This means that should an OEC want to return a modified 'Value$ property for a control, internally it could read the control's 'Value$ property and then pass back the modified version.

Directive Mapping

Whenever the application issues a standard graphical control directive against an Object Control, the system will attempt to map the directive to a method within the object. For example, when the directive LIST_BOX DISABLE is issued against an object control, the system will first attempt to execute a 'Disable( ) method in the object should it exist.

For Enhanced controls, if the method does not exist, the system will apply the directive to the actual control as it would normally. For Defined controls, the method must exist; otherwise, the directive will fail.

The full list of the directive mappings is displayed below.

Directive

Object Method

Purpose

control GOTO nn 

Focus( )

Set Focus to control

control REMOVE nn 

Remove( )

Remove control

control LOCK nn 

Lock( )

Lock the control

control UNLOCK nn 

UnLock( )

Unlock the control

control AUTO nn 

Auto( )

Set Automatic mode (Signal All Changes)

control ENABLE nn 

Enable( )

Enable the control

control DISABLE nn 

Disable( )

Disable the control

control FIND nn,a$

Find(a$)

Find element in list

control FIND nn,c,r 

Find(c,r,a$)

Find element in grid

control READ nn,a$,e$

Read(a$,e$)

Read value from control

control WRITE nn,v$

Write(v$)

Write value to control

control LOAD nn,i,v$

Load(i,v$)

Load specific value to control

control LOAD nn,l$

Load(l$)

Load list of values to control

control LOAD nn,i,*

Delete(i)

Delete entry from list

control SET_FOCUS nn,fctl 

SetFocus(fctl)

Set On Focus CTL value

control ON nn 

SetOn( )

Set control to ON state

control OFF nn 

SetOff( )

Set control to OFF state

control HIDE nn 

Hide( )

Hide the control

control SHOW nn 

Show( )

Show the control

GRID Specific Functions

GRID CLEAR nn,c,r [,w,h]

Clear(c,r [,w,h ])

Clear range of grid type control

GRID WRITE nn,c,r,v$

Write(c,r,v$)

Write value to grid

GRID READ nn,c,r,a$,e$

Read(c,r,a$,e$)

Read value from grid

GRID DELETE nn,c,r 

Delete(c,r)

Delete columns/rows

GRID ADD nn,c,r 

Add(c,r)

Add rows/columns

GRID SELECT nn,c,r [,w,h]

Select(c,r [,w,h])

Select range

GRID SELECT READ nn,c,r 

SelectRead(c,r)

Read first selected cell

GRID SELECT NEXT nn,c,r 

SelectNext(c,r)

Read next selected cell

GRID SELECT RESET nn,c,r 

SelectReset(c,r)

Read next selected cell

control will vary depending on the type of control being enhanced/defined