http://www.newton-inc.com/dev/techinfo/qa/qa.htm
newtApplication
method NewtInstallScript
is normally called in the part's InstallScript
function. One thing the NewtInstallScript
does is register the viewDefs in the NewtApp base view allViewDefs
slot using the global function RegisterViewDef
. RegisterViewDef
requires that the data definition symbol be internal. If the symbol is on the card, then when the NewtRemoveScript
tries to unregister the viewDef a reference to data on the card is encountered and the above error message will be shown. This bug will be fixed in a future ROM. InstallScript
before calling NewtInstallScript
: local mainLayout := partFrame.theForm;
if mainLayout.allViewDefs then
foreach dataDefSym,viewDefsFrame in mainLayout.allViewDefs do
foreach viewDef in viewDefsFrame do
RegisterViewDef (
viewDef, EnsureInternal (dataDefSym) );
partFrame.removeFrame :=
mainLayout:NewtInstallScript(mainLayout);
Note that it is OK to call RegisterViewDef
more than once with the same view definition. RegisterViewDef
will do nothing (and return NIL) if the template is already registered.