sez [EMAIL PROTECTED]:
>I would like to limit the number of characters a user can input on any
>line in a scrolling field.
>
>In the field script
>
>on keydown theKey
>  if theKey is not in " 0 1 2 3 4 5 6 7 8 9 - . " then 
>  beep
>  exit keydown
>    else
>    if (the length of me) > 4 then 
>    beep
>    exit keydown
>    end if
>    pass keydown
>  end if
>end keydown
>
>  "if the length of me is > 4 then..."  this works but limits the
>TOTAL field to 4 characters.
   Well, you could always let the field be updated normally, and use "send 
in" with a very short delay to check the field's contents *just* after that 
update occurs. Like so...

local OldContents

on keyDown DisKey
  put me into OldContents
  if DisKey is in ".-1234567890" then
    send "CheckMe" to me in 10 milliseconds
    pass keyDown
  else
    beep
  end if
end keyDown

on CheckMe
  put the selectedChunk into Fred
  # mind the e-mail line wrap here!
  put the number of lines in (char 1 to (word 4 of the selectedChunk) of me 
into DisLine
  # and here, too!
  if (line DisLine of me is not a number) or (the length of line DisLine of 
me > 4) then
    beep
    put OldContents into me
  end if
end CheckMe

   Hmmm... "line DisLine of me is not a number" is supposed to cover all the 
bases, numerical-input-wise, but if the user wants to type a negative number, 
he'll start with a dash... not sure if "-" counts as a number... decimal 
points could be bothersome in this respect, too... If need be, try this for the 
IF 
statement instead:

if not (((line DisLine of me is a number) or (line DisLine of me is in ". - 
-.")) and (the length of line DisLine of me <= 4)) then

   Hope this helps...
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to