在计算机管理信息系统的设计中, 友好的用户界面的设计显得愈来愈重要。 图形化界面技术的发展为设计友好的用户界面提供了可能性。 而许多可视化程序设计方法和面向对象技术的应用, 为高效开发良好的用户界面提供了强有力的开发工具。我们在使用Windows类软件的过程中,常有表示工作进展的进度条(又称温度计) 显示工作进展情况,使用户直观地了解进程, 免于等待之苦。本人在用VFP 6.0开发应用软件的过程中, 用面向对象程序设计方法编写了一进度条程序。 设计有大标题和小标题,大标题表示系统处理的事件, 小标题表示正在处理的对象说明。 后附程序包含用代码建立的通用进度条类及进度条对象创建使用方法,具有通用性和调用简单的特点,只须把通用进度条类定义包含在用户的程序中,如示例使用即可。 *P_form.prg *作者:蔡怀周 *调用方法 Createobject函数第一个参数为定义的类名, * 第二个参数为大标题 * Pshow调用方法:第一参数为进度百分比, * 第二个参数为小标题 Poject=createobject("Myform","进度条设计示例 设 计:王兴华") &&建立进度条对象 Pobject.show &&显示对象 l=1 do while l<=1000 Pobject.pshow(l/1000*100,str(l)) &&显示进度 l=l+1 enddo wait wind "任意键结束!" Pobject.release &&释放对象
0
**定义进度条类 DEFINE CLASS Myform AS FORM ***自定义属性 ***属性修改 Caption='' AutoCenter=.T. BackColor=RGB(192,192,192) BorderStyle=2 Closable=.F. ControlBox=.F. Minbutton=.F. Maxbutton=.F. Movable=.F. Height=79 Width=471 Comment="进度类设计示范" ADD OBJECT LINE1 AS LINE ; WITH ; Left=62 ,; Top=26 ,; Width=363 ,; Height=0 ,; BorderColor=RGB(128,128,128) ADD OBJECT LINE2 AS LINE ; WITH ; Left=62 ,; Top=47 ,; Width=363 ,; Height=0 ,; BorderColor=RGB(255,255,255)
ADD OBJECT LINE3 AS LINE ; WITH ; Left=62 ,; Top=26 ,; Width=0,; Height=22,; BorderColor=RGB(255,255,255) ADD OBJECT LINE4 AS LINE ; WITH ; Left=425 ,; Top=26 ,; Width=0,; Height=22,; bordercolor=RGB(128,128,128) ADD OBJECT Shape1 AS SHAPE ; WITH ; Left=63 ,; Top=27 ,; Width=0,; Height=21,; Visible=.F. ,; Borderstyle=0,; backcolor=RGB(192,0,192)
ADD OBJECT LABEL1 AS LABEL ; WITH ; Left=240, ; Top=54 ,; Width=17,; Height=19,; Caption="%", ; BackStyle=0
ADD OBJECT LABEL2 AS LABEL ; WITH ; Left=62, ; Top=10 ,; Width=43,; Height=18,; Caption="" ,; Visible=.t. ,; AutoSize=.t.,; BackStyle=0
ADD OBJECT LABEL3 AS LABEL ; WITH ; Left=217, ; Top=53 ,; Width=43,; Height=18,; Caption="" ,; Visible=.F. ,; BackStyle=0 PROCEDURE INIT LPARA LTEXT Thisform.caption=ltext Thisform.shape1.visible=.f. Thisform.shape1.left=thisform.line1.left Thisform.shape1.top=thisform.line1.top+1 Thisform.shape1.height=thisform.line3.height-1 ENDPROC
PROCEDURE PSHOW LPARA Lper,ltext
Thisform.label2.caption=ltext Thisform.label3.visible=.t. Thisform.label3.caption=alltrim(str(lper)) Thisform.shape1.width=lper*thisform.line1.width/100 Thisform.shape1.visible=.T. ENDPROC ENDDEFINE
|