![]() |
SuperCard FAQ |
![]() |
|
A little background for our readers: SuperCard 1.7 introduced a new way to implement dialogs in SuperCard with the Dialog Management Engine (DME). With the DME, rather than create a dialog in SuperEdit or with the Runtime Editor as you would any other window, you use true "DLOG" and "DITL" resources, creating the dialogs with ResEdit. The DME provides a way to display and manipulate the contents of these resource-based dialogs through SuperTalk scripts. While SuperCard had always had the ability create dialogs as one of the many window styles and behaviors it supports, there are some distinct advantages to using the DME, perhaps the greatest of which is speed. Once a dialog is displayed with the DME's "dialog" command, SuperCard drops into a much smaller, more specialized event loop, one optimized for dialogs. As a result, all of the overhead ordinarily associated with handling multiple windows is bypassed. User events are responded to slightly faster, items are drawn directly onto the dialog without going to an offscreen buffer first. All this adds up to a pretty responsive dialog engine. Another advantage is the way the DME affects, or rather doesn't affect, the flow of control in your script. For example, if you have a menu item which opens a standard SuperCard window as a dialog, the flow of control transfers to the newly-opened window. With the DME, references to the current window do not change, and flow of control is returned to the calling script after the dialog is dismissed. This behavior more closely resembles the scripting style one would use for an "ask" or "answer" dialog.
|