I have the following in a frontscript, so it works on any field:
on mouseup theBtn
if theBtn <> 1 then pass mouseup
if the target begins with "field" then
if the commandkey is down and the shiftkey is down then
set the writable of the target to not the writable of the target
end if
else
pass mouseup
end if
end mouseup
setprop writable tf
if not (the target begins with "field") then exit writable
try
set the locktext of the target to not tf
set the traversalon of the target to tf
set the autohilite of the target to tf
end try
end writable
getprop writable
if "field" is not in the target then return empty
try
put the locktext of the target into L
put the traversalon of the target into T
put the autohilite of the target into A
if T and A and not L then return true
return false
end try
end writable
Holding the commandkey down during a mouseclick will trigger a mouseup message
(like the controlkey), and this means that cmd-sh-click will trigger the
mouseup handler. I use the virtual property "writable" to set the locktext,
autohilite, and traversalon of the field. Note that no enduring property of the
target field is ever actually set, since the calls are intercepted to perform
an action on the field instead. This is what is meant by a "virtual" property.
If you only want to toggle the locktext of the field you can instead forget the
virtual prop calls and just do "set the locktext of the target to not the
locktext of the target" in the mouseup handler.
-- Peter
Peter M. Brigham
[email protected]
http://home.comcast.net/~pmbrig
On Nov 28, 2011, at 12:07 PM, Jim Hurley wrote:
> I have been trying to find a way for the user to change a text field from
> unlocked to locked and back without leaving the field, just using mouse
> clicks.
>
> I have found (stumbled on) a way that appears altogether illegitimate.
>
> If the field is unlocked I can type into the field as expected. If I click in
> the field nothing happens, again as expected.
>
> BUT if I right click (control click) in the unlocked field the field receives
> both a mouseDown and a mouseUP message and I now have a way to change the
> field from unlocked to locked even when the field is unlocked and supposedly
> receiving key strokes but not mouse clicks. (See script below.)
>
> Is there some orthodoxy by which I can under stand this?
>
> Jim Hurley
>
> on mouseUP tNum
> put the locktext of field id 1003 &cr after msg box
> if tNum = 3 then set the locktext of field id 1003 to not the locktext of
> field id 1003 -- returns false & cr & true
> put the locktext of field id 1003 &cr after msg box
> end mouseUP
>
> If tNum = 3 and the field is unlocked, the message box shows:
>
> false
> true
> _______________________________________________
> use-livecode mailing list
> [email protected]
> Please visit this url to subscribe, unsubscribe and manage your subscription
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
_______________________________________________
use-livecode mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode