#42002/2/4 20:42:24
                            
                                没事件仔细看了,前些时间写了个计算器,检测是否输入的是数字和运算符,希望代码你能用得着。
--rainy 2001.02.17
property pMysprite
property pMyMember
property pAddKey --str,加号
property pEqualKey --str,等号
property pClearKey --str,清除
property pState --symbol,当前状态
property pLvNum --list,其中元素为str
property pNum1,pNum2 --int
--------------------------------
--属性初始化
on Initialize me
  pMysprite=me.spritenum
  pMyMember=sprite(pmysprite).member
  pLvNum=["0","1","2","3","4","5","6","7","8","9"]
  pNum1=0
  pNum2=0
  sprite(pMySprite).editable=TRUE
  --  member(pMyMember).alignment="left"
  
end
--------------------------------
on beginsprite me
  me.Initialize()
end
--------------------------------
--判断是否输入为数字,同时判断“+,回车_=,退格_清除”
on IsNum me,strIn
  myStr=String(strIn)
  
  --判断数字,并根据状态做出反应
  IsNumYN=pLvNum.getOne(myStr)
  if IsNumYN then
    return(myStr)
  end if
end
--------------------------------
on keyDown me 
  me.putNum()
end
--------------------------------
--清除显示的数字
on clearNum me
  member(pMyMember).text=""
end 
--------------------------------
--显示数字到field
on putNum me
  --先判断是否按下特殊键
  case chartoNum(the key) of
    pAddkey:
      pState=#Addkey 
    pEqualkey:
      pState=#Equalkey 
    pClearkey:
      pState=#Clearkey 
  end case 
  
  case pState of
    #Equalkey:
      pNum2=integer(member(pMyMember).text)
      me.clearnum()
      sum=pNum1+pNum2
      -- put sum
      member(pMyMember).text=string(sum)
      pNum1=0
      pNum2=0
      return()
    #Clearkey:
      pNum1=0
      pNum2=0
      me.clearNum()
      pState=VOID
      return() 
  end case 
  
  --保存原数字
  strOldNum=member(pMyMember).text
  
  --调用检测函数 
  strNum=IsNum(me,the key)
  
  --若无意按到非数字键,忽略
  if strNum=VOID then 
    if pState=#Addkey then 
      pNum1=integer(member(pMyMember).text)
      me.clearNum()
      return()
    end if 
    member(pMyMember).text=strOldNum
  else
    member(pMyMember).text=strOldNum & strNum
    -- the selStart=length(member(pMyMember).text) 
  end if 
end
--------------------------------
on getPropertyDescriptionList me
  mylist=[:]
  addprop mylist,#pAddKey,[#comment:"输入加号的键:",#format:#integer,#default:61]
  addprop mylist,#pEqualKey,[#comment:"输入等号的键:",#format:#integer,#default:13]
  addprop mylist,#pClearKey,[#comment:"输入清除的键:",#format:#integer,#default:8]
  return mylist
end