Fourth World Logo Fourth World Media Corporation
  Embassy Services Products Resources   About Fourth World Contact  

IncWell Logo

SuperCard FAQ

4W Logo

What are some other differences between HyperCard and SuperCard?

- Enumeration of Backgrounds

SuperCard enumerates backgrounds differently than HyperCard does. In HyperCard, background number 1 is the oldest background in the stack; the last background is the most recently created. In SuperCard, background number 1 is the first background in the card list, background number 2 is the next background in the list, and so on. These two numbering schemes are usually the same, because backgrounds in the card list are usually created in chronological order.

- Differences in the Location Property

HyperCard treats the location property of a window as the top-left corner, but the location of a button or field is the center. SuperCard always treats the location as a center, because the topLeft property is available for all objects in SuperTalk. This can cause problems if a converted script sets the location of the message box, and moves it off screen.

- The Scroll Property and List Fields

Support for true lists was added to SuperCard versions 1.5 and later. After converting a HyperCard stack to a SuperCard project, it is typical in many cases to want to change ordinary fields over to the new list or scrollingList styles. For this, you must take into account the difference in effect the scroll property has on these types of fields. The scroll property of a regular field refers to a pixel value. For list fields, the value represents a line number.

- The "Within" Function in SuperCard

HyperCard 1.2 saw the addition of a new operator knows as within. This operator tests whether or not a particular point lies inside the coordinates of a given rectangle. In SuperCard, within is also a function which takes two parameters: an object descriptor and a point. This function returns true or false based on whether or not the given point is within the bounds of the object. Care should be taken in making sure your within constructs are correct for SuperCard.

- Differences in Implementation of Apple events

SuperCard 1.6 and later copies the way HyperCard 2.1 deals with Apple events, but goes one step beyond. Using the with option of the newly expanded send command, it is possible to send other arbitrary Apple event classes and IDs (not just the 'dosc' and 'eval' events HyperCard can send) to linked programs. This expands the Apple event horizon greatly. See the SuperCard 2.5 User Manual for more information.

Also, SuperCard does not implement as many "coercion handlers" as HyperCard does. SuperCard 1.6 and later versions only handle file names, and will only deal with straight ASCII text as the direct object of any event.

- Other Sundry Differences

SuperCard 1.6 and later does not implement the extended XCMD architecture (XWindows) of HyperCard 2.x, nor does it provide support for the many new XCMD callback routines added to version 2.x of HyperCard.

There are numerous other differences in the scripting languages used by both HyperCard and SuperCard. As one example of this, the leaveField system message (which is sent to a field when the insertion point is removed from it without making any changes to the text it contains) existed in SuperCard 1.5 well before HyperCard 2.0 was released. But the HyperCard engineers decided to call their version of this message "exitField". Unfortunately, there have been no efforts to standardize the expansion of HyperTalk and SuperTalk.