Please enable JavaScript to view this site.

A-Shell Development History

Note: Important compatibility issue.

Handle the answer array for editable cells that also support individual cell color in a more consistent and flexible manner. Previously, checkboxes always took only one column in the answer array, even if they support individual cell colors (and thus required two columns in the main data array). Now, two columns are required in the answer array for each checkbox that supports cell colors (B). Just as with the main data format, the first column is used for the cell color index code, and the second for the checkbox data (0/1/2). This change will break existing programs that have this type of columns (like XTRA5 - see updated version in 908,021).

For other editable cells, the change is minor, since they previously allocated a an extra column in the answer array to account for the color byte in columns with the B code. The difference now is that the first byte of the field is reserved for the color code. Previously, the color code was not expected to appear in the answer array (thus making the answer array and main data array one column out of sync.)

Besides eliminating some confusion over how to handle this kind of column, the new scheme allows you to update the color of individual cells on re-entry while still using XTROP_RESELECT and XTF_NOREDRAW.

The XTRA5 sample program has been updated to illustrate this. Both the description column and the XL checkbox column combine the B code for individual cell colors with being editable. If you activate the validation option, clicking a checkbox in the XL column will cycle the cell through three different colors as it cycles through the three states of the checkbox. Also, if you uncheck all of the checkboxes on a row, the description cell will change to a pink color.

Note that on re-entry, a blank passed for the color index will preserve the existing color, rather than setting it back to the default. The color codes passed back from XTREE in the answer array will always be blank.