查看: 2332|回复: 0

[已经过期] 关于ACE的数值输入(事件里的)

[复制链接]
梦石
0
星屑
370
在线时间
17 小时
注册时间
2012-7-23
回帖
2
发表于 2019-4-2 00:28:13 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 zulu777 于 2019-4-2 00:35 编辑

windows_numberinput 关于这个,想改成键盘数字键输入。那么配合上全键盘脚本(不知道ACE有没有这样的脚本),再改造

  def process_digit_change
    return unless active
    if Input.repeat?(:UP) || Input.repeat?(:DOWN)
      Sound.play_cursor
      place = 10 ** (@digits_max - 1 - @index)
      n = @number / place % 10
      @number -= n * place
      n = (n + 1) % 10 if Input.repeat?(:UP)
      n = (n + 9) % 10 if Input.repeat?(:DOWN)
      @number += n * place
      refresh
    end
  end

改成类似

n = 1 if Input.repeat?(:数字键1)
n = 2 if Input.repeat?(:数字键2)
n = ? if Input.repeat?(:数字键?)
这样

然后套上循环
$i=@digits_max-1 #(我理解应该是比如定义4位,也就是3.2.1.0,最先输入的是3也就是千位,不知道有没有理解错)
begin
   ..............
   $i -=1;
end until $i =0

同时根据i判断n的位数用if来判断n是否需要*10000 *1000 *100 *10
或者用这个,if i >1 n *= 10 ** (@digits_max - 1 - $i) # 是不是指数运算,没理解错吧?

用@number += n 得出最后结果。

能达到用键盘输入数字的用途吗?
暂时不考虑小键盘和删除,选取,取消等功能。
比如定义4位要输入23,
就要输入0023,也能满足了。(考虑文本输入的话是不是还要转成数值,感觉对我来说太复杂了。)


首先是不知道怎么获取数字键,另外是不知道这个思路对不对。
不懂编程,求指点。
如果有现成也求分享。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部