看了楼上各位的技巧,收获很多,还不能一一验证和掌握,先收下了。
作为回报,我也写些内容与大家分享。
我编程总想简单,能不用控件就不用控件,在动态显示进度时,我们总是用控件ProgressBar Control,我现在用两个文本框代替这个控件同样解决了问题,而且不存在控件的注册问题。
步骤一,在表单上添加两个文本框,重叠,text2在text3之上,两个ENABLED、visible均设为.f.,text3略小些,disabledbackcolor高为rgb(255,255,0)黄色(或其他色),text2高为透明,文本居中,disabledforecolor高为rgb(0,0,0)。text3的width=A(最后的宽度)。
[IMG]C:\a.bmp[/IMG]
步骤二:程序运行后,求出记录总数B。在text2\text3的visible=.t.之前,令text3.width=0
步骤三:显示进度,设已处理记录数为C,不断修正text3.width=C*A/B,并显示text2.value=str(C*100/B,3)+"%",
这样随着程序的进行,一个动态的进度条生成了。
第四步:结束后,将text2\text3的visible=.f.即可。
使用和设置一点也不比ProgressBar Control控件复杂。当然这个进度条还不是很美观。
[此贴子已经被作者于2006-10-19 19:31:00编辑过]
TO:心随所欲
你可以根据12楼的提示进行测试。这里,为了快速方便你测试,建议你在表单中只添加两个控件:一个文本框TEXT1,一个命令按钮COMMAND1。但事先在表单的初始化部分THISFORM.INIT打开表“职工.DBF”,设置文本框的INPUTMASK中X的个数与姓名宽度一致,并在表中添加用于测试的数据,比如“张三”、“张大三”、“张小三”、“李四”、“李大四”、“李小四”等数据。你将12楼的程序一个字不改地复制到命令按钮的CLICK事件中。
运行表单后在文本框中输入“张三”,点击命令按钮,结果是不是出现前面所说的3条记录。
请问二楼的:"IIf(recn()="+M_RECNSTR+",RGB(255,255,255),RGB(0,0,0))"这个表达式中,M_RECNSTR是个变量,为什么用两个+号还用引号