回 帖 发 新 帖 刷新版面

主题:谁能帮我看看这段代码有什么问题吗?

一个简单的计算器
  选择“新建”表单,进入表单设计器,增加一个文本框控件Textl、一个标签控件Label1和一个命令按钮组CommandGroup1,并将命令按钮组的ButtonCount属性改为16。
  (2)设置对象属性如下表所示:
  CommandGroup1中各按钮的属性设置
  对象 属性 属性值 说明
  Command1~Command10 Caption 依次改为:1、2、3、4、5、6、7、8、9、0
  FontBold .T.
  Command11~Command10 Caption 依次改为:.、=、+、-、*、/
  FontBold .T.
  (3)编写程序代码。
  ①编写CommandGroup1的Click事件代码:
  IF THISFORM.Tag=.T.
  THISFORM.Text1.Value=ALLT(RIGHT(STR(THIS.Value),1))
  THISFORM.Tag=""
  ELSE
  a=THISFORM.Text1.Value
  THISFORM.Text1.Value=a+ALLT(RIGHT(STR(THIS.Value),1))
  ENDIF
  ②编写“.”按钮Command11的Click事件代码:
  a=THISFORM.Text1.Value
  THISFORM.Text1.Value=a+"."
  ③编写“=”按钮Command12的Click事件代码:
  a=THISFORM.Text1.Value
  THISFORM.Text1.Value=ALLT(STR(&a))
  THISFORM.Tag=.T.
  ④编写“+”按钮Command13的Click事件代码:
  a=THISFORM.Text1.Value
  THISFORM.Text1.Value=a+"+"
  THISFORM.Tag=""
  ⑤编写“-”按钮Command14的Click事件代码:
  a=THISFORM.Text1.Value
  THISFORM.Text1.Value=a+"-"
  THISFORM.Tag=""
  ⑥编写“*”按钮Command15的Click事件代码:
  a=THISFORM.Text1.Value
  THISFORM.Text1.Value=a+"*"
  THISFORM.Tag=""
  ⑦编写“/”按钮Command16的Click事件代码:
  a=THISFORM.Text1.Value
  THISFORM.Text1.Value=a+"+"
  THISFORM.Tag=""
我还在按钮0~~9这十个数字添加了下面这个单击事件:
a=THISFORM.Text1.Value
THISFORM.Text1.Value=a+"0"(这个0是0~9的数字中的一个。1~9我就没放上来!)

我刚刚学VFP。那位大师指点下好吗?上面这个代码不能运行!结果是出来了,但弹出一个对话框说此数据类型无效!还有就是当我输入超过1位数字的时候,除第一个数字以外,后面的数字就看不见,要用光标移过去才能看见。

回复列表 (共2个回复)

沙发

谁可以帮我改一下上面那段代码吗?只要加减乘除和退格还有那个清空重新计算。就可以了。在这里小弟先谢谢了!

板凳

你这个还称不上计算器——与计算器的原理不一样,你只是输入个表达式再计算


从“②编写”开始(除了‘=’)只需要写成统一的即可:

a = alltrim(THISFORM.Text1.Value)
THISFORM.Text1.Value=a+this.Caption
THISFORM.Tag=""

③编写“=”按钮Command12的Click事件代码:
a = alltrim(THISFORM.Text1.Value)
THISFORM.Text1.Value=ALLT(STR(EVALUATE(a))))
THISFORM.Tag=.T.

退格:
a = alltrim(THISFORM.Text1.Value)
THISFORM.Text1.Value=left(a, len(a)-1)

清空:
THISFORM.Text1.Value=''

我来回复

您尚未登录,请登录后再回复。点此登录或注册