ADC Home > Reference Library > Technical Notes > Legacy Documents > Tools >
Important: This document is part of the Legacy section of the ADC Reference Library. This information should not be used for new development.
Current information on this Reference Library topic can be found here:
The 15 Billion Horsemen of the Apocalypse
With the introduction of HyperCard 2.0, many of the old bugs were quashed, and absolutely no new bugs were created. In fact, the software was so bug-free that it immediately attained Nirvana and Apple has had problems getting it to do anything since. Just kidding.
HyperCard File Format
The HyperCard file format is available for licensing on a case-by-case basis. Since HyperCard has moved to Claris, developers should contact Claris for more information if you feel that your product is a substantial and important addition to HyperCard and the Macintosh.
Since HyperCard allows developers to control data input and output to files using HyperTalk, most "needs" for file formats may be easily met by using HyperTalk and writing scripts. In particular, the following HyperTalk commands are useful:
Versions of HyperCard after 1.0.1 come with examples of how to use these commands. For those with HyperCard 2.0 release stacks, look in the Power Tools stack for the "Export Stack Scripts" card, which provides frameworks for building custom file I/O routines.
Scripts which create many new cards, e.g., scripts which import data, should be
sure to keep a counter of the number of cards created and call
In versions prior to 2.0, HyperCard could only play format 2
Visual Effects On Monitors With Multiple Bit Depths
With HyperCard 2.0, visual effects work with all monitor depths up to eight bits, although these effects are faster on a one-bit depth screen. In previous versions of HyperCard, the monitor had to be set to a one-bit depth for visual effects to be visible.
High Disk Space Requirement For BackGround Printing
Running HyperCard under MultiFinder with Background Printing enabled requires extensive disk space for printing large jobs, such as printing a stack (with Print Stack... in the File menu) of 100 cards. For example, a ten card stack may only be 20K in size, but the spool file might be greater than 1MB. This requirement is due to Print Monitor's spooling the job to disk. Note that this requirement does not hold true for report printing, where no graphics need to be spooled.
Possible Printing Problems
LaserWriter Timeout Errors
The LaserWriter IINT and LaserWriter drivers prior to 6.0.1 had a bug which resulted in long jobs failing to print due to a timeout error after approximately one hour. Version 6.0.1 of the LaserWriter driver addressed this problem; however, you may still want to print large jobs in batches using a HyperTalk script.
Printing To Non-PostScript Printers
HyperCard 2.0 would not print to non-PostScript printers. HyperCard 2.0v2 fixes this bug.
HyperCard 2.0 uses TextEdit's word break routine with some optimizations. While it fixes bugs in the old HyperCard word break routine, it does things somewhat differently. Therefore, there may be significant changes in the way text fields are wrapped, and this may adversely affect the visual design of stacks intended for use with earlier versions of HyperCard. One of these changes is that HyperCard no longer considers quotation marks to be separate from their attached words.
Note that stacks designed under versions of HyperCard prior to 2.0 continue to use the old word break routine until converted to 2.0 format.
Beware The on idle Handler
If the user types into a field with the example handler in a background script, the insertion point disappears from the field whenever the time changes, for example from "6:42 PM" to "6:43 PM," requiring HyperCard to change the contents of background field "Time."
A solution to work around this problem involves checking the selection within
Note that if the
Previous versions of HyperCard had various bugs with the
Note that when
The more trigrams that are specified for the
would find "Thanasis Kehagias" in "Metagreek Appraisal Department" faster than would:
Paint Tools and HyperTalk
HyperTalk can control all painting tools and commands except the polygon tool and the special effects tools (Rotate, Distort, Slant, and Perspective).
Selecting Contents Of A Field With HyperTalk
There are several ways of selecting text in a field with HyperTalk: by simulating a double click, a Shift-click, or a drag. The three button scripts presented here show how to do this.
The first shows a method of simulating a double click. This script performs a
double click at the
Figure 1. Simulating A Double Click
This second script demonstrates a method of selecting text in a card field with the shift-click and puts the selection in another card field:
Figure 2. Simulating A Shift-Click
The third script presents a method of selecting text by dragging over it. This
method, however, requires
Figure 3. Simulating A Drag
Dialing The Telephone
System Software 6.0.7 has a bug on the Macintosh IIsi which causes HyperCard
2.0 to run the tones together when executing a
HyperCard 2.0v2 fixes all known bugs with the dial command other than the one just documented. In addition, the dial command now supports the A, B, C, and D buttons found on military telephones.
Note that the .TouchTone
Launching Applications Under MultiFinder With open
HyperCard 2.0 returns a value in
mouseDown and mouseUp Messages in Scrolling Fields
HyperCard does not send the
Passing it As A Parameter To Handlers
Disappearing Resource Forks
Using Globals From 'XCMD' Resources
It used to be the case that one could not create a global from an
Some people may notice that there is still the problem of how to make sure the
handler declares the global if you do not want the
Note the return character (\n) in the second example above--the message passed
to HyperCard becomes a two-line message (yes, it is possible). The first line
makes the handler's scope aware of the global
La Bomba (Ya No Soy Marinero)
It is imperative that scripts test the global property
Unfortunately, there is no way for a script to trap for out of memory errors
when they occur, although it is sometimes possible to enter the debugger to
determine exactly what was happening when memory ran out like so many gamma
particles from Einsteinium. However, scripts can check
For example, in scripts which import large amounts of data into a variable,
Another good use for
HyperCard Script Language Guide
Getting Started With HyperCard 2.0
HyperCard 2.0 Release Notes
The Age of Reason
PostScript is a registered trademark of Adobe Systems Incorporated.