回 帖 发 新 帖 刷新版面

主题:00000问题10,请大家耐心看这个繁琐的问题00000000

这是一个计算器的程序   


 ①编写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=〃 〃
可一运行时总显示操作符\操作类型不相符,控件的属性值我都没有动过的,保持默认属性的,请问是什么原因,谢谢

回复列表 (共2个回复)

沙发

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 

代码应为:
IF THISFORM.Tag 
   THISFORM.Text1.Value=ALLT(RIGHT(STR(THIS.Value),1)) 
   THISFORM.Tag=.f. 
ELSE 
   a=THISFORM.Text1.Value 
   THISFORM.Text1.Value=a+ALLT(RIGHT(STR(THIS.Value),1)) 
ENDIF 
这里的Tag为逻辑型

板凳

if thisform.tag=.T.

只有当thisform.tag为逻辑型时,才不会出错.
而它的值/类型,以最后一次赋值为准.



a=THISFORM.Text1.Value 
THISFORM.Text1.Value=a+〃+〃 
可以缩写成一行代码THISFORM.Text1.Value=THISFORM.Text1.Value+〃+〃 
但,应该检查原句式后面是否已添加了运算符.

计算字符串值的时候,最好使用EVALUATE( )函数.

我来回复

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