On 2/8/05 4:54 PM, Silver, Jason wrote:
case navUp -- Determine which text field the user is currently in put the short name of the selectedField into activeField if activeField = "User ID" then focus on field "Password" else -- The user must be in the password field focus on field "User ID" end if break
This works all well and good, except when pressing on an area that's not a button (in my stack, the purpleish area). The cursor then disappears from either the User ID or Password fields, and then when pressing Up or Down, the following error occurs (because the focus is not in a field):
Type: Chunk: no target found Object: Login Screen Line: put the short name of the selectedField into activeField
That's because when you click on the card, no field is in focus. The "selectedfield" will be empty, and you can't get the short name of empty.
Instead of trying to get the name for all cases, change the syntax to:
case navUp -- Determine which text field the user was in if the selectedField contains "User ID" then -- change this focus on field "Password" else -- Currently in password field focus on field "User ID" end if break
By using "contains" instead of "equals", you can work with an empty case. Since it is never used more than once, you can also eliminate the line that puts the selectedfield into the variable; just compare it directly.
I took a quick look at your script, and noticed you have an "exit" statement as the last line of the handler. No need -- all messages automatically stop at the end of the handler, unless they are expressly passed. The buttonPress message will never go any farther.
You don't need "send to" in the button scripts -- all messages are automatically sent to the card if the button itself doesn't handle them. Use:
on mouseup buttonPress "selectKey" end mouseup
But even better, since you have elegantly named your buttons for the messages they send (which is good,) you could put this same script in all of them:
on mouseUp buttonPress (the short name of me) end mouseUp
And if you wanted to get really fancy, don't put any scripts in those buttons at all. Leave them completely empty. Instead, use a single card script:
on mouseup get the name of the target if it contains "button" then buttonPress (the short name of the target) end mouseUp
This last approach will work even if you add future buttons that aren't supposed to use the "buttonpress" message. If you give those future buttons their own "mouseup" handler, then the "mouseup" message they catch will never reach the one that is living in the card.
-- Jacqueline Landman Gay | [EMAIL PROTECTED] HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-revolution mailing list use-revolution@lists.runrev.com http://lists.runrev.com/mailman/listinfo/use-revolution