More Thoughts

 

I wonder if perhaps the NewDirObject, NewIndObject, and NewThirdObject should be left unspecified, defaulting to ThisSubject, 0, and 0 respectively. Then the user can specify them if she really wants to. Of course, how would this specification be added? I suppose it could be added or subtracted to the display with a menu call.

 

There's also the matter of running off the bottom of the screen. I could put in a vertical scrollbar. I hate scrolling; perhaps I could page or put in some selectors that allow you to see different combinations.

 

I'd sure like to use the intelligence of the machine to handle this problem. It would be so much nicer for the user.

 

OK, here's my thinking so far: I will eliminate the consequence editor lower display. Instead, there will be a single display for editing purposes, the role editor. It will have a series of display options associated with it: display everything, display weights only, display DirObject only, display IndObject only, display ThirdObject only. There will also be a paging facility so that the user can see what's going on if there are just too many factors.

 

The substitution variables will always be displayed in all displays. When the user has selected any operator, she can press a single button labelled "Substitute"; it means "give me a new substitution variable". She can also select from a menu of previously declared substitution variables. However, a substitution variable itself, like any other left-hand term, can never be selected. If the user deletes all references to any given substitution variable, its definition is eliminated from the display.

 

The user may have up to 16 substitution variables: x, y, z, t, u, v, w, p, q, r, s, i, j, k, l, and m.

 

While I'm at it, I'm going to clean up that mess with the arithmetic and logical operators. They really shouldn't be declared in the Master Globals file; they should be intrinsic to the code. And I'm going to put the substitution variables into the code in the same fashion.