用数字键盘的运算符调出计算器!

zgy61 2010-05-23 11:13:11
个人觉得会计软件中利用数字键盘的“+”、“-”、“*”、“/”运算符调出计算器的小功能很适用,请用有谁在PB中实现过吗?
...全文
365 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgy61 2010-06-01
  • 打赏
  • 举报
回复
谢谢楼上的bqyy(白云苍狗)。您说的是PB中的另外一项技巧。
而我现在求解的是在PB中利用数字键盘的“+”、“-”、“*”、“/”运算符调出计算器的功能项,具体描述为:当使用者敲击数字小键盘的 “+”、“-”、“*”、“/”时,系统即响应弹出计算器。使用者利用计算器得到需要的结果后,敲击回车键,输入焦点返回到输入栏,计算结果相应显示在输入栏中。这项功能在大多数会计软件中都得到了实现,我用PB做了一段时间,一直得不到理想的结果,这才上来请都水平高的同道,望不吝赐教。
bqyy 2010-05-31
  • 打赏
  • 举报
回复
文本框里面直接输入算式如:5*3+2
如果你想做的更多一些,可以要求用户输入一个=号开头的式子,才进行计算
只要在of_evalute中判断开头字符是否是=就可以了
bqyy 2010-05-31
  • 打赏
  • 举报
回复
public subroutine of_evaluate (long row, dwobject dwo, string data);string retVal
//用于计算表达式的值
datastore lds_evaluate
lds_evaluate = create datastore
lds_evaluate.create('release 8;~r~ntable()')
retVal = lds_evaluate.describe("evaluate('" + data + "', 1)")
dwo.primary[row]=dec(retval)
destroy lds_evaluate
end subroutine


event itemerror;call super::itemerror;
//响应itemerror事件
if left(dwo.coltype,7)='decimal' then
//如果是数值型字段,则计算输入的式子
post of_evaluate(row,dwo,data)
return 2 //禁止错误信息
end if
end event
zgy61 2010-05-27
  • 打赏
  • 举报
回复
bqyy,谢谢您的解答。能给出一个具体的实例吗?
zgy61 2010-05-26
  • 打赏
  • 举报
回复
楼上的gui41021,我把资源分改了,您去下载吧。对不起,因我很少上来不知这儿的规矩,随手而为。其实既然是一个学习环境,分多分少是不重要的,重要的是能互相交流。我很感谢xys_777和xuam、zlf19810306,他们的热心让我减少了很多工作。
gui41021 2010-05-26
  • 打赏
  • 举报
回复
资源分10 你太狠了 作为同行 打个折吧 BTW 我是抢银行的

下载可用分太难弄了 经常评论了不返分

永生哥下载了么,zheng41021@126.com给俺发份吧

永生天地 2010-05-26
  • 打赏
  • 举报
回复
非常简单的计算器 for PB8.0

用小键盘可以打开, 很容易引入到你的程序里 免费下载 任意传播

并将计算结果写回到调用窗口
bqyy 2010-05-26
  • 打赏
  • 举报
回复
俺都是设置成文本框,在itemerror事件里捕获错误数据,然后evaluate,简单
zgy61 2010-05-25
  • 打赏
  • 举报
回复
CSDN上的各位同仁,会计软件中利用数字键盘的“+”、“-”、“*”、“/”运算符调出计算器的功能项,具体描述为:当使用者敲击数字小键盘的“+”、“-”、“*”、“/”时,系统即响应弹出Windows系统自带的计算器。使用者利用计算器得到需要的结果后,敲击回车键,输入焦点返回到输入栏,计算结果相应显示在输入栏中。这项功能在大多数会计软件中都得到了实现,我用PB做了一段时间,一直得不到理想的结果,这才上来请都水平高的同道,望不吝赐教,谢谢。
zllzlw520 2010-05-24
  • 打赏
  • 举报
回复
我来看看看学习下
zgy61 2010-05-24
  • 打赏
  • 举报
回复
谢谢xys_777老师,只是我实在愚笨,试了多次,都得不到希望的结果。如果老师有空,能不能做个简单的应用,发到我的邮箱:gyzgy61@sina.com.作为交换,老师可以到我的资源处下载我现在正在做的“票据打印程序”,里面有很多东西,相信对一些做程序的人来说应该有用。先谢谢老师了。
zgy61 2010-05-23
  • 打赏
  • 举报
回复
谢谢您的热心。我这就去下来看看。
永生天地 2010-05-23
  • 打赏
  • 举报
回复

lz新手
我刚试了一下,只要在窗体的key事件里写如下代码就可以
IF KeyDown(KeyAdd! ) OR KeyDown(KeySubtract! ) OR KeyDown(KeyMultiply!) OR KeyDown(KeyDivide!) THEN
run("calc")
end if


另外:
如果是其他控件没有就增加一个事件,event id 选 pbm_keydown,名字就叫ue_key
然后把代码粘贴上去
xuam 2010-05-23
  • 打赏
  • 举报
回复
http://www.hur.cn/Soft/2009/3297.html
现存有一个!
zgy61 2010-05-23
  • 打赏
  • 举报
回复
能者为师,谢谢楼上的解答,只是我是菜鸟,楼上的xys_777教师能否解释详细一些,谢谢了。
new4everlau 2010-05-23
  • 打赏
  • 举报
回复
这个需求不太好,好多物料代码都带这些符号,可以控制键+这些符号可以,呵呵
永生天地 2010-05-23
  • 打赏
  • 举报
回复
写个keydown
IF (KeyDown(KeyAdd! ) OR KeyDown(KeySubtract! ) OR &
KeyDown(KeyMultiply!) OR KeyDown(KeyDivide!) THEN
run(calc)
end if
pb_tjb 2010-05-23
  • 打赏
  • 举报
回复
每天10分
zgy61 2010-05-23
  • 打赏
  • 举报
回复
xuam,首先谢谢您的热心。我下了那个程序来看了一下,做得很好,只是我的意思也许您理会得有些出入,我说的是当使用者敲击“数字键盘的“+”、“-”、“*”、“/”运算符调出计算器”的小功能很适用,请用有谁在PB中实现过吗?您知道得多,能给我解答一下吗?再次谢谢xuam。

1,077

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧