System Functions
OBJ( ) Return Object Information
   
Formats 1. Return contol information: OBJ( ctl_id [ ,ERR=stmtref ] )
2. Return object list: OBJ( LIST )

Where:

ctl_id Control ID number that is assigned to each control when created. Numeric expression. If 0 (zero), information about the current window is returned
stmtref Program line number or statement label to which to transfer control.
   
Format 1
Description
This form of OBJ( ) function returns a string containing information about a given custom control object (i.e., BUTTON, LIST_BOX, etc.). If the control doesn't exist, ProvideX returns an Error #65: Window element does not exist or already exists. The example below shows what is returned for existing LIST_BOX 10. The string returned by the OBJ( ) function contains 64 characters:

0020 LIST_BOX 10,@(10,10,60,10),FMT="L8 B2 L20 C10 N15 C3"
->?hta(obj(10))
00040000000A000A003C000A0000000000000978004E00CE01E40092004F009501E2009000000000
000000000000000000000000000000000000000000000000.

Characters Information Returned by OBJ( )
1,2 These bytes indicate the type of control.
HEX value Type of control
$0001$ Push Button
$0002$ Check Box
$0003$ Tri_State Check Box
$0004$ Standard List Box
$0005$ Variable List Box
$0006$ Drop Box
$0007$ Variable Drop Box
$0008$ Multi-line Edit box
$0009$ Radio Buttons
$000A$ External VBX
$000B$ Listview
$000C$ Tree View
$000D$ Grid
$0010$ Vertical Scroll Bar
$0020$ Horizontal Scroll Bar
3,2 These bytes indicate the current status of the control. The value in the two bytes is a cumulation of bits indicating the various states.
HEX value Additive bit states
$0001$ Drop box open
$0002$ Control changed: issue CTL on closure
$0004$ Control has focus
$0008$ Control is dropped
$0010$ Insert mode for typing
$0020$ Temporary font in effect
$0040$ Ignore format
$0080$ Temporarily non-paint
$0100$ Notification pending "signal" button
$0200$ Focus changed due to signal
$0400$ Hide until input
$0800$ Button is down
$1000$ Focus interrupt is deferred
$2000$ Input must have implied decimal point
$8000$ Disabled object

For example, to detect enabled / disabled NOMADS control:

X$=OBJ(OBJECT_NAME.CTL)
IFAND(X$(3,2),$8000$)=$8000$ THEN PRINT"Objectisdisabled"

5,2 Column
7,2 Line
9,2 Width
11,2 Height
13,4 Visual screen attributes at time of creation
17,4 Operating system handle
21,2 Left Pixel }…Includes Border
23,2 Top Pixel }…Includes Border
25,2 Right Pixel }…Includes Border
27,2 Bottom Pixel }…Includes Border
29,2 Left Viewable Column
31,2 Top Viewable Row
33,2 Viewable # of Columns
35,2 Viewable # of Rows

 

   
Format 2
Description
The OBJ( LIST ) form of the function is used to return a string that describes all the objects defined within the system.

This format of OBJ function is +PxPlus Exclusive (build 9200)

For each object in the system the function returns a string consisting of:

  • Object number for the object
  • Reference count (number of references to the object)
  • Class name from the DEF CLASS definition
  • Pathname to program file that defined contained the class definition

Each of these fields is delimited by a TAB ($09$) character and each object's definition is terminated by the current separator character.