[comp.sys.mac.hypercard] HyperCard problems

ns@CAT.CMU.EDU (Nicholas Spies) (04/04/88)

Note: to those that asked: stackbuilder button will be posted on
hypercard.binaries when it arrives.

Two odd problems and a wish:

I got an error message "Too many variables" in a handler that was using
perhaps 40 (local) variables and the script crashed in what seemed to be the
same place on both a MacII with 1MB of RAM and an SE with 2.5MB. I then
changed the script and the error dissapeared even though there are about the
same number of variables as before. Strange... How many variables _are_
allowed per handler (there must be a limit), per script, etc. Also, how many
comma-separated parameters can be passed to a handler or function?

Using the construct max(min(x,999),-999) doesn't seem to work consistantly
in HC 1.0.1. If you type "put 5/0" into message, HC returns INF, as expected;
if you type "put min(5/0,999)" HC returns 999, as expected. However, if x in
a running script goes to INF (confirmed by "put x") HyperTalk gags, saying
it doesn't understand arguments to min. Does V1.1 cure this?

Another inconsistancy: although you can pass points (two integers separated
by a comma) to drag as in "drag from topLeft to botRight", points are not
expanded to two items if passed as parameters. Thus a handler declared with
"handlerName x1,y1,x2,y2" must be called with the cumbersome "handlerName
item 1 of topLeft, item 2 of topLeft, item 1 of botRight, item 2 of
botRight". Wouldn't it be nice if HyperTalk expanded item lists consistantly
so you could say "handlerName topLeft, botRight" ?

Is there any way to detect whether a pixel is "on" or "off" in a script?

Is there some way in a HyperTalk script to drag the lasso tool to
circumscribe an arbitrary polygon with n straight sides, to select it?
Clicking with command key doesn't do what I want, nor does selecting with
marching ants rectangle.


-- 
Nicholas Spies			ns@cat.cmu.edu.arpa
Center for Design of Educational Computing
Carnegie Mellon University