china.com
主页
新闻
体育
游戏
文化
教育
健康
财经
科技
旅游
军事
娱乐
商贸
  科技动态 硬件广场 下载基地 网络教室 网络冲浪 科学博览 移动时代 手机上网 桌面壁纸 科技商情  


VFP中微调按钮应用技巧二则

2000-08-14 15:42:13

  微调按钮控件在VFP数据库系统中是比较常用的控件之一。正常情况下,该控件主要是对数值型的数据进行操作,通过使用鼠标点击微调按钮的向上、向下箭头改变数据源中的值。

  笔者在编写各类应用程序中,通过对微调按钮控件属性、事件的分析,利用编程扩展了微调按钮应用的范围和功能,下面以两个例子来说明实现的方法。

  一、 使用微调按钮控件实现字符串的变化

  一个应用系统要求使用微调按钮控件实现星期内容的输入,即实现从星期一至星期天的输入,要求使用微调按钮来实现。即当我们点击微调按钮的向上箭头时,编辑框中的内容可以由星期一变为星期二,再次点击到星期三等等;当点击向下箭头时,编辑框中的内容变化同点击向上箭头时相反。

  为了解决这个问题,可以采取微调按钮与编辑框结合的方式来实现,具体实现方法如下:

  在表单中利用表单控件拉出一个微调按钮对象spinner1和一个编辑框对象text1,调整微调按钮的宽度,将数值输入区变小,只保留向上、向下箭头的宽度,将编辑框与微调按钮并列到一起,使得编辑框如同微调按钮控制值的输入区一样,这时设置微调按钮spinner1的相关属性:

  Keyboardhighvalue=7

  Keyboardlowvalue=1

  Spinnerhighvalue=7

  Spinnerlowvalue=1

  Value=1

  其它属性保持不变。在spinner1.InteractiveChange事件中写入如下代码:

  Thisform.Text1.Value=Subs(′星期一星期二星期三星期四星期五星期六星期天′,this.value*6-5,6)

  Thisform.Refresh

  设置编辑框的相关属性:

  Thisform.Value=′星期一′

  其它如编辑框中的数据源、字体、字号和颜色等属性,用户可自行设置。

  全部内容设置完毕后,运行这个表单,即可以看到当使用鼠标点击微调按钮的箭头时,编辑框中的内容将发生变化,实现了用户提出的使用微调按钮输入星期值的要求。

  二、根据微调按钮数值区中光标位置,设置数值改变时的增量值

  系统提出的要求是:在微调按钮数据编辑区内,能够根据光标所在位置不同,使用鼠标点击向上、向下箭头时,数据变化的大小也不同。如在一个数值中,当光标在数值的万位数之前时,点击向上、向下箭头,则为万位数发生加减变化;光标在小数点后时,点击向上、向下箭头,则小数点的值发生变化。这样使用微调按钮,可以方便、快速实现输入任意一个数值。

  具体实现方法是:首先在表单中新建一个微调按钮对象spinner2,同时设置该对象的相关性:

  Spinnerhighvalue=X

  &&X为使用微调按钮要输入数的最大值

  Spinnerlowvalue=Y

  &&Y为使用微调按钮时要输入数的最小值

  Value=3456.45

  Increment=0&&增量设为0

  Inputmark=999999999999999.99

  &&指定微调按钮如何输入和显示数据,小数点前面9的个数代表数值的整数位,小数点后面9的个数代表数的小数位,这里小数位设为2位。

  其它如编辑框的数据源、字体、字号和颜色等属性,用户可根据要求自行设置。

  全部属性设置完毕后,在该微调按钮对象Spinner2的DownClick事件中写入如下代码:

  xsd=3&&这个值为编辑框中小数点后的位数加1。

  wz2=thisform.spinner2.selstart

  thisform.spinner2.selstart=100

  CD=len(allt(str(this.value)))

  wz1=thisform.spinner2.selstart

  wz=wz1-wz2

   IF wz〉(cd+xsd)

   wz=cd+xsd

     wz2=wz1-(cd+xsd)

   ENDIF

  zi=1

   IF wz〈=xsd

   FOR i=1 to xsd-wz

   zi=zi*10

   ENDFOR

   this.value=this.value-(1/zi)

  ELSE

   FOR i=1 to wz-(xsd+1)

   zi=zi*10

   ENDFOR

   this.value=this.value-zi

  ENDIF

  thisform.spinner2.selstart=wz2

  在微调按钮对象spinner2的UpClick事件中写入如下代码:

  xsd=3&&这个值为编辑框中小数点后的位数加1。

  wz2=thisform.spinner2.selstart

  thisform.spinner2.selstart=100

  CD=len(allt(str(this.value)))

  wz1=thisform.spinner2.selstart

  wz=wz1-wz2

   IF wz〉(cd+xsd)

   wz=cd+xsd

     wz2=wz1-(cd+xsd)

   ENDIF

  zi=1

   IF wz〈=xsd

   FOR i=1 to xsd-wz

     zi=zi*10

   ENDFOR

   this.value=this.value+(1/zi)

  ELSE

   FOR i=1 to wz-(xsd+1)

   zi=zi*10

   ENDFOR

   this.value=this.value+zi

  ENDIF

  thisform.spinner2.selstart=wz2

  全部代码输入完毕后,运行这个表单。在微调按钮的编辑框中输入某一个数据,通过使用鼠标或方向键将光标定位到编辑框中某一数值之前,再点击微调按钮的向上、向下箭头,这时编辑框中值的改变会根据光标定位点位置的不同而改变,这样就比较方便利用鼠标实现不同数据的输入,有兴趣的读者不妨一试。

  摘自《赛迪网》 王守银/文

404 Not Found

404 Not Found


nginx


科技检索


中华网推荐

  • 1000名医生在线咨询

  • 中国足球队官方网站

  • 鸦片玫瑰(新版)

  • 精选股票天地

  • 闪光的flash教程

  • 中华网汽车世界

  • 为你的爱情出谋划策

  • 网文精选——野百合集

  • 世界文化遗产在中国

  • 历届香港小姐风姿集




  • 网络教室编辑信箱
    版权声明 | 本站检索 | 联系方法 | 刊登广告 | 使用说明 | 关于中华网 | 豁免条款

    版权所有 中华网