在vfp的程序设计中,其主窗口_screen有一个系统的状态栏,虽然可以很方便的使用命令set message to 字符。。。但是有时侯还是会有美中不足之处,如系统的显示一个当前打开的当前工作区的表的决定路径,以及其所在的记录位置,和锁定方式,令人很是头疼。
当然不仅仅因为此,我们就要放弃该状态栏啊,有时我们需要使我们的状态栏显得更专业点,或者需要显示特定的状态栏信息,故,需要使用状态栏控件来使我们的程序更漂亮!
状态栏在显示时有两种模式,一是单版面,二是多版面。单版面就是在状态栏地方显示一个信息区,而且只可以放置简单的文字说明,而多版面可以放置二个或以上的信息区,并可以特定的系统说明,如caps,num,ins等的状态指示,并可以放置图片。而且两种模式在切换时还不互相干扰,互不影响!
下面说明一下其使用方法
首先该控件需要文件 mscomctl.ocx 的支持,如果在安装了vfp6的环境下,系统目录下已经有了该文件,如果在修改或运行前提示要打开一个ocx文件,那么需要首先拷贝该文件到你的系统目录,然后再指定该文件,因为第一次指定时,系统即注册该文件,及其路径,所以不要随便在第一次去指定一个ocx文件,否则麻烦大了!
状态栏的属性之一style,即上面所讲的两种显示模式,0 - mutliple panels 和 1 - single panel simple text 当为single panel simple text 模式时,很方便的处理,只要指定状态的另一个属性 simpletext即可,就象在操作vfp主窗口的状态栏时用 set message to 那么方便了,在这里就是thisform.olestatus.simpletext="新的字符串"即可。
而当在 mutliple panels 时就不同了,其实我们需要这个控件也就是为了这个功能吧,不然用vfp主窗口的状态栏不就行了嘛?在多版面时,每一个版面作为一个对象来操作,即panel,对之我摸索到如下的属性:
1、index 是指panel的索引号,该索引号是顺序排列且唯一指定每一个panel的。
2、text 是指在panel上显示文本的,只有当其style=0(文字)时才有效。
3、tooltiptext 是当鼠标移到该panel上时显示的提示信息,要当控件的showtips=.t.时才有效。
4、key 是用来唯一标志每一个panel的值,该值要么不指定,即为空,要么就是要唯一指定。在做对panel的删除时,需要指定panel的key值。
5、width 是指panel的宽度,宽度不可以小于0,否则出错。
6、tag 用来存储额外数据的,一般没什么用。
7、visible 默认为.t.即可见,可以通过修改该值来隐含panel.
8、enabled 默认为可用,可以通过修改该值来表示panel的可用不可用状态。
9、alignment 对齐方式,默认为左对齐。
10、style 表示panel的样式,如普通文字,caps,num,ins的键的状态指示,用来表示日期,时间等。
11、bevel 表示panel的外观,有平面,突起,凹进三种。
12、picture 该参数还未知如何以编程方式来指定,他的值是作为一个对象存储的。
方法:
1、添加
thisform.olestatus.panels.add(n,"key_"+allt(str(n)),"ready",0 )
以上代码参数表示:
n 是指其index值,该值必须唯一,且是顺序指定,"key_"+allt(str(n)) 表示其key值,要指定,必须使他唯一,否则出错。
"ready" 是在panel上显示的文字。
后面的0表示其样式为普通文字。
2、删除
thisform.olestatus.panels.remove(key)
指定某一个panel的key值时,可以通过该命令来做删除。
3、更新
详细见示例中
应用:
1、显示进度条:
| *-- panel 的宽度 = 12 * 方块个数 + 2 with thisform.olestatus.panels.item(1) && 在第一个panel里显示进度条 .text = "" ntotalnum = (.width - 2)/12 && 总方块个数 x = 0 && 当前所计算出的第几个方块数 y = 0 && 跟x参考比较数 ntotalsum = 100000 && 总数 for n = 1 to ntotalsum && 表示从1到100000之间的处理进度 x = int((n * ntotalnum)/ntotalsum) && 求得现在是需要显示第几个方块数 x if y <> x && 当两个数不相等时,表明有新的数产生,则加一个方块 .text = .text + '■' y = x endif *-- 处理某事务 endfor .text = "完毕" end with |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器