VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 693|回复: 2

求助vfp表单设计

[复制链接]

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-2-2 13:40:02 | 显示全部楼层 |阅读模式
利用文本框和标签控件,设计一个表单Test.scx,用与统计输入的字符总数,字母个数。
要求。1。单击“统计”按钮,则开始统计字符数
      2。单击“退出”按钮,则结束程序的运行
统计的字符个数是这样显示
  输入的字符总数------
  其中的字母个数------

各位强人把按钮中的代码写给小弟看看阿,急急!!
回复

使用道具 举报

0

主题

32

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-3-24 19:30:01 | 显示全部楼层

标签控件为Label1
文本框控件为Text1
统计按钮控件为Command1
退出按钮控件为Command2

建一个Prg,取名为MyFunc.Prg,内容如:
FUNCTION StrIdentify
        LPARAMETERS lcString
        LOCAL lc中文,ln中文个数,lc英文,ln英文个数,lc空格,ln空格个数,lc数字,ln数字个数,lc其他字符,ln其他字符个数
        STORE '' TO lc中文,lc英文,lc空格,lc数字,lc其他字符
        STORE 0  TO ln中文个数,ln英文个数,ln空格个数,ln数字个数,ln其他字符个数
        FOR I=1 TO LEN(lcString)
                IF ISLEADBYTE(SUBSTR(lcString,I,1)) &&中文(中文及中文符号是双字节)
                        lc中文=lc中文+SUBSTR(lcString,I,2)
                        I=I+1
                        ln中文个数=ln中文个数+1
                        LOOP
                ELSE
                        DO CASE
                                CASE UPPER(SUBSTR(lcString,I,1))$'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
                                        lc英文=lc英文+SUBSTR(lcString,I,1)
                                        ln英文个数=ln英文个数+1
                                CASE SUBSTR(lcString,I,1)=SPACE(1)
                                        lc空格=lc空格+SUBSTR(lcString,I,1)
                                        ln空格个数=ln空格个数+1
                                CASE SUBSTR(lcString,I,1)$'1234567890'
                                        lc数字=lc数字+SUBSTR(lcString,I,1)
                                        ln数字个数=ln数字个数+1
                                OTHERWISE
                                        lc其他字符=lc其他字符+SUBSTR(lcString,I,1)
                                        ln其他字符个数=ln其他字符个数+1
                        ENDCASE
                ENDIF
        ENDFOR
        lcRetVal='中文(含中文符号):'+ALLTRIM(STR(ln中文个数))+'个。是:"'+lc中文+'"'
        lcRetVal=lcRetVal+CHR(10)+'          英文字母:'+ALLTRIM(STR(ln英文个数))+'个。是:"'+lc英文+'"'
        lcRetVal=lcRetVal+CHR(10)+'              空格:'+ALLTRIM(STR(ln空格个数))+'个。是:"'+lc空格+'"'
        lcRetVal=lcRetVal+CHR(10)+'              数字:'+ALLTRIM(STR(ln数字个数))+'个。是:"'+lc数字+'"'
        lcRetVal=lcRetVal+CHR(10)+'          其他字符:'+ALLTRIM(STR(ln其他字符个数))+'个。是:"'+lc其他字符+'"'
        RETURN lcRetVal
ENDFUNC


然后
表单的Load事件:
Set Proc To MyFunc.Prg

表单的Unload事件:
Set Proc to

Command1的Click事件:
THISFORM.LABEL1.CAPTION=StrIdentify(THISFORM.TEXT1.VALUE)
MESSAGEBOX(StrIdentify(THISFORM.TEXT1.VALUE))

Command2的Click事件:
Thisform.Release

另外把Label1的宽和高设置大一些,这样才可以显示将结果显示全
回复

使用道具 举报

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-3-25 14:15:01 | 显示全部楼层
谢谢!!!!
vf真麻烦,vc几下就搞定了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表