Control Object Properties
Multi-Property Access  
   
Description The following properties allow an application to set/get values for more than one property for a control in a single command:

'_PropList$ Comma separated list of property names to read/write.
'_PropValues$ String that contains values for each of the properties in '_PropList$.
'_PropSep$ Character used as a field separator between values.

The ability to handle multiple reads is useful for accessing properties across a WindX/JavX connection, particularly when dealing with an object that has a large number of properties such as a grid. This can boost performance and reduce the amount of network traffic.

To retrieve the value of multiple properties, first set '_PropList$, then read '_PropValues$;

For Example:

G1'_PropList$="CurrentColumn,CurrentRow,Value$"
x$ = G1'_PropValues$

In this example, x$ receives a string containing the values of CurrentColumn, CurrentRow, and Value$, with each field separated by either the standard SEP field separator, or with the '_PropSep$ character. Data can then be extracted using READ DATA;

For Example:

READ DATA FROM G1'_PropValues$ TO IOL=MYIOL MYIOL: IOLIST Col, Row, Value$

To set values, first set '_PropList$ (if not already set), then set '_PropValues$;

For Example:

    G1'_PropValues$ = "1"+SEP+"2"+SEP+"Data"
or G1'_PropValues$ = REC(IOL=MYIOL)

The advantage is that only one packet need be sent to WindX / JavX to either SET or RETRIEVE the values of multiple properties. Do not constantly read fields '_PropList$ and '_PropSep$ from the control in order to parse the data returned by '_PropValues$. This would defeat the purpose;

For Example:

READ DATA FROM G1'_PropValue$,SEP=G1'_PropSep$ TO IOL=CPL("IOLIST "+G1'_PropList$)

The above example actually results in three exchanges with WindX: one to get '_PropSep$, the second for '_PropList$, and the third for '_PropValues$. The separator character and list should be maintained within the application code and should not be retrieved from the control.