[comp.sys.mac.hypercard] HYPER-HACKERS Digest Vol. 1 #8

chuq@plaid.Sun.COM (Chuq Von Rospach) (12/25/87)

                    HYPER-HACKERS Digest Vol. 1 #8
                           December 24, 1987

                              Subjects:
                             hyperhackers
                          Undo Your Stacks!
                          A few HC questions
                                Thanks
                HyperTalk Limitations/Another Wishlist
                     HyperCard/MultiFinder bug ?
                XFCN needs to update HyperCard screen?

-----------------------------------
From: <BELSLEY%BCVMS.BITNET@MITVMA.MIT.EDU> (DAVID A. BELSLEY)
Subject:  hyperhackers

I have recently begun a rather ambitious attempt to see how well the
hypercard environment can accomplish a statistical "guidance"
facility.  I have, naturally, encountered a number of shortcomings in
hypercard, but, by no means, have given up hope because my knowledge of
what it can really do is still growing and because HC itself is still
growing.

1.  How can one get two field to scroll simultaneously, leaving control
with an active field so that selection regions and insertion point do not
change?

2.  How can one determine when a field has closed even if the text in it
has not changed?  (The closeField message is not sent if the text at closing
is the same as at opening).

3.  How can one dim buttons (rather than hide them)?

I spent yesterday converting the MPW HyperXCmd.h and inc.c files to be
compatible with LSC and did indeed write a successful XCMD or two.  But manyu
of the questions I have need rather intimate knowledge of the way the edit
records, etc. associted with the fields are defined, and I suspect it is
going to require some concerted and united effort to bring this sort of
information into our living rooms.

-----------------------------------
Date: 	  Mon, 14 Dec 87 21:03:25 PST
From: PUGH@NMFECC.ARPA
Subject:   Undo Your Stacks!

Well, I may have the first instance of Undo in a Hypercard stack.  This just 
came to me and I wonder why I haven't heard of it in any other stacks.

on doMenu x
  if x is "Undo" then
    global changedStuff, whatChanged
    put whatChanged into temp
    put changedStuff into whatChanged
    put temp into changedStuff
  else
    pass doMenu
  end if
end doMenu

And in a button or other script somewhere :

global changedStuff, whatChanged
put the name of ??? into whatChanged
put whatChanged into changedStuff
put ??? into whatchanged
...

You get the idea, I assume...

By using some global variables and placing this in your stack script, you can 
implement Undo with the best of them.  Set some condition under which you can 
Undo, and you can call Hypercard if you can't Undo.  It's great!  

I just thought I should remind everyone that just cause it's Hypercard doesn't
mean it has to be unstandard! 

-----------------------------------
Date:     Tue, 15 Dec 87 00:49 EST
From: <BELSLEY%BCVMS.BITNET@MITVMA.MIT.EDU> (DAVID A. BELSLEY)
Subject:  A few HC questions

Here are a few questions to keep the creative sorts chewing:

1.  How can one get two field simultaneously to scroll in HyperCard.  I
don't mean setting one field's scroll to that of another, because that
can only work in a staggered fashion.  I mean for the two fields really
to scroll together.

2.  How can one determine when a field has closed after it has been opened?
The closeField message is only sent if the text in the field has been changed.
This, however, makes it difficult to verify the field for a specific entry
type.  Suppose, for example, the field should be a number.  If a letter
slips in, this can be caught on the initial closeField, but, if the user
ignores your warning and makes no correction, you have no way of knowing
this since no closeField will be sent if the text isn't changed.  I have
found ways around this, but they are all extremely awkward.

3.  Is it possible to dim a button?  Perhaps an XCMD could be written to
do this, but this would require some rather intimate knowledge of the
way hypercard keeps its control information.  Is such information available,
both for buttons and for fields?

4.  Related to the above, how does one address the controls and the fields
from an XCMD or XFCN?  Where is the window edit record stored for each
field, for example?  How does one get access to the appropriate handles
while the card is open?  etc.?

I have been able to do a lot with HC in attempting to set up an environment
for guided computing in statistics, but a number of limitations such as those
indicated above are making its use problematic.  I have by no means given
up hope.  I am sure I have a great deal more to learn, and I am also sure
that HC will undergo substantial growth.  But unless answers to such
questions become real, HC will not serve many subtle needs.

-----------------------------------
Date:     Tue, 15 Dec 87 11:20 EST
From: <BELSLEY%BCVMS.BITNET@MITVMA.MIT.EDU> (DAVID A. BELSLEY)
Subject:  Thanks

  Also, in answer to several of the questions from the last digest.

a.  Using find for only one background can be effected by using "find
fielddesignator"  such as find source in field "whatever".  This won't
always be a solution, but could help in many cases.

b.  For the chap who wanted to compare two words, one can use
find word source instead of find source.  This finds only exact matches
to the source.  When it finds the exact match, however, it puts a box
only around the first word, but the entire source is in fact matched.

-----------------------------------
Date: Fri 18 Dec 87 23:47:37-PST
From: Sunil Maulik <MAULIK@BIONET-20.ARPA>
Subject: HyperTalk Limitations/Another Wishlist

O.K. All you Hyper-hackers,

I have been following the BBoards for a while now, I've got Goodman's
book, I've even got the APDA HyperCard technical reference package
(which I barely understand - I'm NOT a seasoned Mac hacker) and I'm
STILL confused:

1. How do HyperTalk scripts (and HyperCard in general)
interface with MultiFinder? - Since HyperCard takes up the entire
screen (we've all seen how HC does away with the scaleable "window"
concept of the Mac) how can one switch back and forth between a 
HyperTalk script (to e.g. launch a program) and MultiFinder ?

2. Since creating DA's is trivial with HyperTalk (has anyone seen
Goodman's desktop organizer, marketed by ActaVision, that seems to do
everything SideKick does and more ?!), will HyperCard (suitably
customized) BECOME the Finder ?

3. O.K. So I can launch a program using HyperTalk. But how do I
MONITOR that program ? Specifically, how do I check if it needs more
input, save its output, and, most importantly, "error-trap" any
unwanted garbage it may produce ?

4. What I REALLY want to do with HyperCard - I'd like to write a
HyperTalk program that runs a terminal emulator, logs on to a remote
mainframe by dialling up through a modem, run a few programs, 
up- or down-load info (plain
text files) using (e.g.) Kermit, and then save that info into a stack.
I have heard DIALOG (the on-line retrieval service) demo'd exactly
such a utility at MacWorld in Boston. How was it done? Does it require
hacking around with XFND's, XCMD's and ResEdit ? Along these lines,
could I design my own customized interface to a BBoard service (such
as this one) where I could download selected messages and link them together?

So.. Is it possible? Am I still dreaming ? As I've said before, I'm
NOT a Mac programmer so I don't know how feasable such a project might
be  only using  HyperTalk. But I could see how, if a script
could run a terminal emulator in the background under MultiFinder, it
just might be possible...


[Moderator's note: CompuServe has a product called Navigator that does
 exactly this. It is supposed to be fascinating. I'll let you know after
 I get a copy and play with it...]

Any Hyper-hacker's
suggestions, code, XFND's/XCMD's, etc. welcome. Surely someone else
must have the same idea ?

-----------------------------------
Date: Wed 23 Dec 87 10:45:47-PST
From: Sunil Maulik <MAULIK@BIONET-20.ARPA>
Subject: HyperCard/MultiFinder bug ?

There seems to be a bug with HyperCard running under MultiFinder. When I ask
HyperCard to launch an application using the open command in the message
box, e.g.:

	open "hard-disk:foldername:applicationname"

and then quit from the application, I am returned to the desktop, NOT back to 
the last card in HyperCard I left from. This doesn't happen with the Finder.
I'm sure I'm not the first to have discovered this. What's the problem and 
(more importantly) the workaround ?!

-----------------------------------
Date: 24 Dec 87 07:04 EST
From: science@nems.ARPA (Mark Zimmermann)
Subject: XFCN needs to update HyperCard screen?

  Q:  What's an easy way for an XFCN to get HyperCard to update its screen
while still keeping the XFCN in charge?
  (I've noticed that when I send a message to put a value into a field, that
field gets updated, but the rest of the card doesn't.  I want to give periodic
progress reports as a computationally-intensive XFCN executes.)
***********************************
End of HYPER-HACKERS Digest

---
Chuq "Fixed in 4.0" Von Rospach			chuq@sun.COM	Delphi: CHUQ