mark cards by finding -- new insights
Timothy Miller
gandalf at doctorTimothyMiller.com
Fri Jul 8 17:11:10 EDT 2005
>On 7/7/05 8:34 PM, Timothy Miller wrote:
>
>>>I just checked out the possibility that somehow the script
>>>inserted an invisible character into the variable. The number of
>>>characters in the variable patientName is as it should be.
>
>Hm. So the text is okay. You could try setting a breakpoint in the
>handler and walking through it in the debugger to make sure the
>command is actually executing. That's about all I can think of.
>(Although if you've already tried the command from the message box,
>you already know it executed.) If it works in other stacks but not
>in this one, then there has to be something different about this
>stack.
>
Hi Jacque, and Marty,
Thank you for your continuing interest in this relatively small "issue."
(Issue is a Klingon word that means "problem." The Klingon term is
widely employed in Silicon Valley.)
I have investigated further. Your comments are good ones of course,
though I must admit I had considered those items already.
I actually discovered something interesting. I previously wrote:
*********************
Different stack:
>Unmark all cards
>lock messages
>mark cards by finding "Jones, Bob" in bg field "daily7"
>answer the number of marked cards
Three marked cards.
Same stack:
>put "Jones, Bob" into theVar
>unmark all cards
>lock messages
>mark cards by finding theVar in bg field "daily7"
>answer the number of marked cards
Three marked cards, again.
I'm pretty sure three is the correct number of hits.
******************
The next step was to try the same thing in the problematic stack. I
tried that last night. Here's how it went. In the multi-line message
box, I entered:
>put "Jones, Bob" into theVar
>unmark all cards
>lock messages
>mark cards by finding theVar in field "patient name"
>answer the number of marked cards
The correct number of hits would be 1. The number of marked cards
came back as 0. I tried it repeatedly, and it failed repeatedly.
Recall that this same script, in the message box, worked fine in a
different stack.
When I tried
>put "Jones, Bob" into theVar
>unmark all cards
>lock messages
>mark cards by finding string theVar in field "patient name"
>answer the number of marked cards
The number of marked cards was correct -- 1 card.
The following script, also typed into the msg box, also worked fine:
>put "Jones, Bob" into theVar
>unmark all cards
>lock messages
>find theVar in field "patient name"
Following the deductive chain, I concluded that the original script
was not the problem, nor was the spelling of the contents of the
variable, nor the contents of the field.
Just to be sure, I went back to the problem script, got the charToNum
of each character in the variable and compared it with the charToNum
of each character in the field. They were identical.
It seemed like the problem must either be a bug, or some property of
the problem stack, the group (with "behave like a background" turned
on), or the field.
The problem stack didn't seem to have any unusual properties. Neither
did the group or the field. "Ignore find command" was not checked in
any of these objects.
I don't understand all the basic field properties, but I messed
around with turning "focusable" "lock text" and "auto hilite text" on
or off. I was doing it somewhat haphazardly, not expecting much to
happen. At some point, 'mark cards by finding thevar in..." started
working. I knew I hadn't changed the script, because it remained
typed in the msg box, unchanged.
I saved and closed the stack, re-opened it. 'mark cards by finding
theVar in...' stopped working again. This time, messing around with
the field properties didn't get it working again. I tried all the
combinations of "on" and "off" I had tried before. I didn't change
the field properties before or after saving, closing and re-opening
the stack.
This morning, I tried again. Once again, 'mark cards by finding
theVar...' didn't work. Zero hits. This time, I remembered the field
had a script in it. One "on closefield" handler and one "on mouseUp"
handler. I didn't think these would make a difference because
messages were locked. Nevertheless, I temporarily commented these
out. 'Mark cards by finding thevar...' started working correctly.
However, when I un-commented the handlers, the 'mark cards by
finding...' script continued to work. I saved and closed the stack,
re-opened it, and the command continued to work. This time, I hadn't
changed any field properties.
It's hard to avoid the conclusion that this is an intermittent bug
that is influenced by some combination of field properties and/or
field scripts and/or the placement of the field in a group, and/or
group properties, and/or turning on "behave like a background" in the
group properties. It might be specific to OS X, and it might be
influenced by the HCaddressing property, which is turned on in my
case. I'm not thrilled by the prospect of trying to isolate the
problem any further. The number of possibilities is too large. I
think I won't.
Gosh, that even bored me! I'm not sure this is of any interest to
anyone. Maybe somehow, somewhere, it might be mildly useful to
someone. Hope so.
If it happened to me, it will probably happen to others, at least
occasionally. I'm not going to submit it to bugzilla, because novices
shouldn't do that. Someone more qualified might want to submit it on
my behalf, if he/she is convinced that it's been investigated
adequately.
'Mark cards by finding string theVar...' seems to work consistently
and it suits my needs, so I'll stick with that.
Cheers,
Tim
More information about the use-livecode
mailing list