Please enable JavaScript to view this site.

A-Shell Development History

904.2.1

(Windows/ATE) Fix a refresh problem when the status lines were turned off (causing display anomalies in the area where the status lines would have been).

904.2.2

(Windows/ATE) Allow the current dialog to be deleted without knowing its id, by specifying ID=0 and MBF'DIALOG in the type parameter.

904.2.3

MIAMEX,72 (get message from language file) now supports another optional parameter. This one supplies the default message if the message number is not defined. New syntax:

xcall MIAMEX,72,cat,msgno,row,col,var,msgfile,arg,"Default Message"

The new parameter ("Default Message") both makes it obvious what the expected text of the message is, as well as eliminating the problem of what to do if the message wasn't defined.

904.2.4

Fix a bug in which INFLD was preloading the value of ENTRY in certain cases even when OPCODE=0.

904.2.5

(Windows/ATE) The mouse-click string for an XTREE control was not being sent when another XTREE control had the focus.

904.2.6

(Windows/ATE) The control table dump (Ctrl-Shift-Right-DblClick) now includes INFLD TYPE codes for any fields created by INFLD.

904.2.7

(Windows/ATE) Message boxes displayed by TAB(-10,17) (or MSGBOX.SBX) now force themselves to the top of the window stack (eliminating a problem where the program was waiting for a message to be acknowledged but the message box was obscured by another window.

904.2.8

(Windows/ATE) XTREE.SBR now supports a new OPCODE (5), to delete just the row(s) identified by the ANSWER parameter. It acts similarly to OPCODE 4, not loading any new records. But instead of selecting the row(s) indentified by ANSWER, it deletes them. It then waits for a new selection, unless the XTF'NOSEL flag is set, in which case it exits immediately. Note that the original data rows are not internally renumbered, so if you are trying to keep your internal array synchronized with the control, you should only mark the items deleted but not compact the array. For example, if you delete item #2, then reselect from the same array, item #3 will appear it position #2, but if you select it, it will still be identified as item #3.

Opcode 5 will mainly be of use in situations where you have a large number of items, making it inefficient to delete and reload the entire control each time you want to get rid of one. This would be particularly true if you didn't really need to keep track of the items being deleted within the context of the original array. (For example, you might start with a list of possible items to choose from, and then as you choose them, they are deleted from that list and moved to another list, like in a shopping cart application. You don't really need to keep track of the state of the original list, because when the order is confirmed, you would work from the list of chosen items, rather than from the list of available items.) The sample program XTRA4.BP has been updated to illustrate OPCODE 5 with dualing XTREEs.

904.2.9

(Windows/ATE) SBR related error messages now display in a dialog or other message box, eliminating a problem where there were being displayed on the text layer but not seen because the text layer was covered by controls or dialogs. (Since the SBR error messages request a keyboard acknowlegement, that had the effect of making the program appear to be hung until you hit a valid response key.)

904.2.10

(Windows/ATE) The multiline line feature has been modified slightly. As before, the main difference between |M and ||M is that the latter allows the use of the ENTER key to break lines within the control, whereas the former exits when ENTER hit. However, the change is that the ||M mode now displays a vertical scroll bar. Also, you can disable the horizontal scroll (i.e., enable word wrap) by adding TYPE ||H.

904.2.11

(Windows/ATE) Mininum field display width in GUI mode now increased by 1 for 1 and 2 character fields (needed to avoid chopping off wide capital letters.)

904.2.12

Virtual key syntax (VK_xxx) sequence for defining click actions now supports "extended virtual function keys" using format %VK_xF###% where ### (1 to 6 digits) is the key number. For example, %VK_xF304% will return EXITCODE -304, and is equivalent to chr9&)+chr(250)+"###.".

904.2.13

Add CGIUTL opcode 6:

xcall CGIUTL, 6, FILE, STATUS, OUTCH, {VARSUB1, ... VARSUB26}

This is identical to opcode 3 except that instead of outputting to stdout, it outputs to file channel OUTCH (which must have been opened for output).

This function is quite useful for expanding template files containing variables to be replaced with data, which applies to a variety of activities not necessarily related to CGI, but was grouped here because it shares the same logic with the existing CGIUTL opcode 3.

904.2.14

(Windows/ATE) "Self-service" combo boxes (where SETDEF="...") will now also exit with EXITCODE=29 on down arrow (as well as clicking on the arrow button.)

904.0.1

(Windows/ATE) INFLD TYPE |M (with A|G) now implements a primitive multiline capability. XMAX is interpreted as the display width of the editing window. DEFPT is re-interpreted as the display height. MAXCHRS determines the maximum number of characters allowed (defaults to the size of the ENTRY parameter if 0). In the standard mode, word wrap is automatic at the edge of the editing window, and the ENTER (or TAB) exits. You may also use TYPE ||M instead of |M to allow ENTER to be used to break lines manually, in which case the auto-wrap is disabled.

Note that this multiline capability is limited in many ways, and should not be considered a substitute for INMEMO. One important limitation is that the maximum # of characters allowed is about 1024. Also note that |M does not disable or set any other TYPE codes, so it you need to select appropriate ones just as you would for a normal text field (probably "A]g" would be good ones to add).

904.0.2

A problem with list substitution (||l and ||L) when the SETDEF items had trailing blanks has been resolved. (It is still preferred, though, that any SETDEF or combobox items be stripped of trailing blanks; at best they waste space and at worst confuse things).

904.0.3

XTREE was not obeying the initial selection specification in ANSWER when in file mode and the first line of the file held the column definitions.