您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> VFP >> 辅导 >> 正文    
  在VFP中实现进度条 【注册男护士专用博客】          

在VFP中实现进度条

www.nanhushi.com     佚名   不详 

1.添加进度条控件
    你建立一个表单之后,遇到需要较长时间处理任务的时候,总是希望有一个提示用户进度的工具。
    查找发现VFP提供了这样的工具,_therm.vcx。它不同于.ocx控件,因此,不能使用菜单中工具和添加ActiveX控件的方法添加进度条,正确的添加方法是:
    (1)点击“表单控件”这个工具栏的“查看类”图标;
    (2)弹出一个快捷菜单,单击添加;
    (3)在安装了VFP的系统文件夹...\VFP98\FCC\这个文件夹里找到可视类库“_therm.vcx”;
    (4)经过上述过程,我们就可以在“表单控件”工具栏里看到出现_thermometer和_progressbar两个控件,将_progressbar这个控件添加到表单,至此进度条正确添加完成。

2.正确使用进度条控件
    这个时候需要使用进度条。我们知道,进度条反映了任务处理的进度,因此,我们必须知道任务的总数是多少,需要处理的进度如何表示,这些指标如何在进度条控件中设置等问题。先谈进度条的属性及方法。
    (1)进度条的属性
    ibasis:指定计算百分数时的基数。实际上就是指需要处理任务的总数。
    ipercentage:指定更新显示时的百分数完成量。实际上就是当前进度。
    iprogress:指定完成(iPercentage) 的百分数。通常这个值就是1=100%。
    (2)进度条的方法
    RESET 方法程序:
        初始化进度条。
        语法:RESET(m.ibasis)
        返回值:无
        参数:m.ibasis 指定从什么地方开始进行进度条显示。一般用0表示。
    Complete 方法程序:
        显示100%完整的进度。
        语法:Complete(m.cTask)
        返回值:无
        参数:m.cTask 指定过程完成时的显示。
    Update 方法程序
        更新进度。
        语法:Update(iProgress, cTask)
        返回值:无
        参数:
        iProgress 指定进程增量。
        cTask 指定需要显示的信息。
    (3)举例说明:
    假设需要处理10万个数据,目的是从第1个数据到第10万个数据进行处理。进度就是这样安排的:
    ibasis就是10万了,它表示需要处理的总数。
    iprogress就是1了,它表示完成处理的百分数为100%。
    Update过程输入1个参数,就是当前处理的数据号。

  这样一个简单的进度条示例就是:

THISFORM._progressbar1.RESET(0)
nCnt=0
nTotal=1E5
THISFORM._progressbar1.iBasis=nTotal
THISFORM._progressbar1.iProgress=1
FOR nCnt=1 TO nTotal
  THISFORM._progressbar1.UPDATE(nCnt)
ENDFOR

===================

也可以用容器+shape+txtlabel自己制作进度条

进度条对象.init

THIS.BarShape.Height = THIS.Height
THIS.BarShape.Width = 0
THIS.TxtLabel.Alignment = 2
THIS.TxtLabel.Left = (THIS.Width-THIS.TxtLabel.Width)/2
THIS.TxtLabel.Top = (THIS.Height-THIS.TxtLabel.Height)/2
THIS.TxtLabel.Caption = "0%"
THIS.Percent=0

进度条对象.show

LPARAMETERS lpPercent
*--合法性检验 

IF lpPercent<0 
lpPercent=0
endif
IF lpPercent>100 
lpPercent=100
ENDIF
THIS.Percent = lpPercent
THIS.BarShape.Width = THIS.Width*(lpPercent/100)
THIS.TxtLabel.Caption = ALLT(STR(lpPercent))+"%"
THIS.Refresh

使用:

 THISFORM.ProgressBar1.Show(i)

此处i应当是任务的相对数 

比如:i=已经处理记录数/总记录数*100

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。