
Beeping Button Brouhaha
breakOnThrows (clicking the icon in the Inspector Window) and press the button again. Now, the Inspector prints out
Undefined variable: numBeeps evt.ex.fr.intrp;type.ref.frame -48807 (#6008D1D1).buttonClickScript(), 3: Push 'text Entering break loop: level 1If we look at the code we see that we're trying to access the
numBeeps variable from our buttonClickScript. That variable should refer to our protoLabelInputLine view. What could be wrong? If we've correctly declared numBeeps to the protoFloatNGo, the protoFloatNGo view should have a slot named numBeeps. Let's look in that view for numBeeps. (That view is the parent of our current self.). First, let's get self:
// get current self beepingButton := GetCurrentReceiver(0);
#440F63D {_parent: {_parent: {#440D221},
_proto: {#6008D0C1},
viewCObject: 0x110926D,
viewclipper: 17863292,
base: <1>,
viewFlags: 577,
viewBounds: {#440F5C1}},
_proto: {buttonClickScript:<function, 0 arg(s)#6008D239>,
text: "Beep",
viewBounds: {#6008D539},
_proto: {@226}},
viewCObject: 0x110A530,
viewFlags: 515}
Now, let's get the parent slot and we will have the right view:
floatNGo := beepingButton._parent
#440F5DD {_parent: {minute: 178,
downButton: {#440B2E9},
calculator: {#4406159},
mailEditor: {#44064C1},
extrasDrawer: {#4409671},
defaultTransport:Newton: {#4405DD9},
OutOfMemoryAlert: {#4405D95},
notification: {#4405D35},
remindSlip: {#44060C5},
namesButton: {#44063D9},
folderEdit: {#4405DF1},
phoneKeyboard: {#4405ECD},
ovButton: {#440643D},
upButton: {#4406461},
thegang: {#44065F9},
printerSerialPicker: {#4405D05},
...},
_proto: {viewBounds: {#6008D199},
stepChildren: [#6008D1B9],
_proto: {@180},
debug: "myFloatNGo",
appSymbol: |Demo:NTK.Demo|},
viewCObject: 0x110926D,
viewclipper: 17863292,
base: <1>,
viewFlags: 577,
viewBounds:{left:-25, top:173, right:139, bottom:265}}
The numBeeps slot doesn't seem to be in the floatNGo. The view otherwise appears to be correct. It sounds like a problem in declaring. Let's check the Template Info dialog for that template (see FIGURE 8.19). Well, well, well. Turns out it actually wasn't declared. We'll checkmark the "Declare To:" checkbox and rebuild.

FIGURE 8.19 : Template Info dialog showing undeclared numBeeps.
An online version of Programming for the Newton using Macintosh, 2nd ed. ©1996, 1994, Julie McKeehan and Neil Rhodes.
Last modified: 1 DEC 1996