|
|
栏 目 导 航 |
|
|
|
|
| |
| 网 站 统 计 |
学校概况:89 篇学校概况 新闻中心:206 个新闻 教学教研:455 篇教学教研 德育工作:87 个德育 视听在线:125 篇视听节目 图片:93 张图片 下载:95 个下载 注册会员:10110位
|
|
| 最 新 调 查 |
| 没有任何调查 |
|
|
|
|
|
|
|
|
|
|
|
上一篇教学教研: 隐藏Visual FoxPro的主窗口下一篇教学教研: 没有了 |
| 为VFP设计一个进度条类 |
|
|
作者:caihz 教学教研来源:本站原创 点击数: 更新时间:2007-12-12 |
在应用程序中使用一个进度条可以直观形象地显示当前处理完成的百分率,此功能的传统实现方法是在程序源代码中直接处理,这显然是一项繁重而缺乏灵活性的工作。为此,笔者在目前较为流行的VFP3.0下编写了一个具有数字和图形双重显示功能的进度条类,对应用程序而言,其调用与标准控件完全一致,并且全面支持可视化编程。
1.建立类
进度条类应该包含两个对象:一个显示处理过程的图形和一个显示处理完成百分率值的标签。首先,建立一个基于包容器类的自定义类,命名为ProgressBar,并在其内部建立一个图形BarShape,高度和ProgressBar相同,宽度预置为0,为便于百分率正文的显示,将图形设置为浅色(如浅蓝色)。加入标签对象TxtLabel,位置居中,宽度足够容下最大正文“100%”,颜色为深色。
鉴于在实际应用中要求本控件的尺寸是交互可变的,因此,对ProgressBar控件的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 自定义属性Percent用于跟踪记录当前百分率的变化;自定义的方法Show用于同时以图形和文本的方式来显示这种变化。 方法Show的代码: PARAMETERS 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 此时,进度条类设计完毕,将其存入自定义的类库中,假设类库名为:MyLib.VCX。 2.应用示例 一旦在VFP中注册了自定义类库MyLib.VCX,那么就能够象对待标准控制一样将其放入应用程序窗体中,通常可以由定时器或循环来激活该控制。 例1:由定时器控制进度时的主要代码: ... ... THISFORM.Timer1.Interval = 1 THISFORM.Timer1.Enabled = .T. THISFORM.Timer1.Reset THISFORM.ProgressBar1.Show(0) IF THISFORM.ProgressBar1.Percent<100 THISFORM.ProgressBar1.Show(THISFORM.ProgressBar1.Percent+1) ELSE THISFORM.Timer1.InterVal = 0 THISFORM.Timer1.Enabled = .F. ... ... ENDIF ... ... 例2:由循环语句控制进度时的主要代码 ... ... THISFORM.ProgressBar1.Show(0) FOR m.i=1 TO n THISFORM.ProgressBar1.Show(m.i/n*100) ... ... 处理循环体 ... ... ENDFOR
|
| 教学教研录入:CaiHZ 责任编辑:CaiHZ |
【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
|
|
上一篇教学教研: 隐藏Visual FoxPro的主窗口下一篇教学教研: 没有了 |
|