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