[comp.sys.mac.hypercard] Rows/Columns in HyperCard Fields

ford@sei.cmu.edu (Gary Ford) (10/12/90)

Some of the functionality desired can be done with HyperTalk.  If you
are willing to live with a monospaced font in the field, it is possible
to have this capability:  click to open a "cell" in a particular row and
column; tab to move to next cell (left to right, then down, with wrap to
first row, first column); all cells remain aligned even when editing a
longer or shorter value into the currently open cell; optional automatic
creation of a new line instead of wrap when tabbing from last cell.

I have a demo stack I can e-mail if you are interested (BinHex 4.0 format;
about 30K).

The basic idea is to keep the field locked, and then open a small field
over a cell when the cell is clicked.  Data is copied from the cell into
the small field, where it can be edited, and is copied back to the cell
when finished.

There are a couple of messy details.  One will be cleaner with HyperCard 2.0,
which can distinguish closeField from exitField.  The other would require
a new system message "scrollEvent" that would be sent to a scrolling field
when the user performs a scroll event.  My stack now has to use an idle
handler to repeatedly compare the current field scroll value to the previous
value, generating a scrollEvent message when they differ.

Performance is marginal on my 3 year old Mac II; it should be acceptable on
any of the faster Macs.  If you can live with a fixed size field instead
of a scrolling field, it is much simpler and faster.

Gary Ford         ford@sei.cmu.edu
Software Engineering Institute
Carnegie Mellon University