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


在VFP6.0中实现文字的推拉显隐的动画效果

2000-08-31 15:45:50

本程序主要利用Visual Foxpro 6.0(以下简称VFP6.0)中的定时器控件和RGB()函数实现文字的颜色大小变化,从而实现了类似于推拉镜头,淡入淡出的动画效果。
函数RGB()的声明如下:
RGB(nRedValue,nGreenValue,nBlueValue)
其中nRedValue、nGreenValue、nBlueValue分别代表红色、绿色、蓝色成份的值,它们的大小变化范围都是0~255,该函数返回一个单一的色彩值,该返回值可作为其它控件的前景色(即ForeColor属性)或背景色(即BackColor属性)的值。
按照下面的步骤,将表单存盘后并运行,可以看到屏幕中央出现一个灰色背景的窗口,在窗口中央从背景色到绿色逐渐出现"学籍管理"四个汉字,并且由小逐渐变大;在窗口内任意位置按一下鼠标左键,可以看到汉字从绿色逐渐变到背景色,并且由大逐渐变小。大家可以对程序稍加改动,就可以实现文字其它的颜色和大小变化。该效果可用于制作软件的封面,或用于制作软件的介绍等。

下面介绍一下具体步骤:

1.启动VFP6.0,并新建一个空白的表单Form1。

2.将表单Form1的BackColor属性设置为192、192、192,即Form1的背景色设为灰色,其它属性如下:
AutoCenter = .T.
BorderStyle = 0
Caption = "欢迎使用本系统"
TitleBar = 1
ZoomBox = .F.
Name = "Form1"。

3.在表单Form1中加入一个标签“学籍管理”控件,并设置其属性如下:

AutoSize = .T. &&使得标签能根据将来字体的大小自动改变大小
FontSize = 8
Alignment = 2 &&文字居于标签中央
Caption = "学籍管理"
ColorSource = 4 &&Windows颜色(默认)
Name = "学籍管理"

4.在表单Form1中加入一个定时器控件beginTimer,并设置其属性如下:
Enabled = .T.
Interval = 25 &&时间间隔为25毫秒
Name = "beginTimer"

5.在表单Form1中再加入一个定时器控件stopTimer,并设置其属性如下:
Enabled = .F.
Interval = 25
Name = "stoptimer"

6.在表单Form1的Init过程中写入以下代码:
PUBLIC red,green,blue
red=192
green=192
blue=192

&&使标签“学籍管理”位于窗体Form1的中央

thisform.学籍管理.left=(thisform.width-thisform.学籍管理.width)/2
thisform.学籍管理.top=(thisform.height-thisform.学籍管理.height)/2

7.在表单Form1的Click过程中写入以下代码:
thisform.beginTimer.enabled=.f.
thisform.stopTimer.enabled=.t.


8.在标签“学籍管理”的Click过程中写入以下代码:
thisform.click &&在标签区域中按一下鼠标左键也执行窗体的Click过程。

9.在定时器控件beginTimer的timer过程中加入以下代码:
&&把字体颜色从背景色变为绿色
if red >0
red=red-1
endif
if blue >0
blue=blue-1
endif
if green < 255
green=green+1
else
thisform.beginTimer.enabled=.f. &&颜色达到要求之后,关闭beginTimer
endif

thisform.学籍管理.forecolor=rgb(red,green,blue)
if thisform.学籍管理.fontsize<70
&&字体逐渐变大,直到70为止
thisform.学籍管理.fontsize=thisform.学籍管理.fontsize+1
endif
thisform.refresh()

10.在定时器控件stopTimer的timer过程中加入以下代码:
&&再把字体颜色变为背景色
if red <> 192
red = red+1
endif
if blue <> 192
blue = blue+1
endif
if green <> 192
green=green-1
endif

&&变为背景色后,释放窗体Form1,用户软件系统中的其它程序可接着执行
if red=192 and green=192 and blue=192
thisform.stoptimer.enabled=.f.
thisform.release
endif
thisform.学籍管理.forecolor=rgb(red,green,blue)
if thisform.学籍管理.fontsize>8
thisform.学籍管理.fontsize=thisform.学籍管理.fontsize-1
endif
thisform.refresh()

本程序在Windows98中文版环境下,Visual FoxPro 6.0中文版中运行通过。

  摘自《软件世界》 邓富强 张海洋 /文

404 Not Found

404 Not Found


nginx


科技检索


中华网推荐

  • 1000名医生在线咨询

  • 中国足球队官方网站

  • 鸦片玫瑰(新版)

  • 精选股票天地

  • 闪光的flash教程

  • 中华网汽车世界

  • 为你的爱情出谋划策

  • 网文精选——野百合集

  • 世界文化遗产在中国

  • 历届香港小姐风姿集



  •  


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

    版权所有 中华网