Database 版 (精华区)

发信人: mengy (LEAR DLLS 命令时,将从内存中清除), 信区: Database
标  题: Visual FoxPro 5.0中为标题增加跑马灯背景
发信站: 哈工大紫丁香 (2000年12月13日09:14:37 星期三), 站内信件

Visual FoxPro 5.0中为标题增加跑马灯背景

    如今的世界,广告随处可见,到了夜晚满天都是霓虹灯制作的各式广告牌,其
中最引人注目的要算那些带有跑马灯背景的广告牌,它们时而突亮、时而突灭、时
而逐个点亮、时而逐个熄灭…… 能否在我们的屏幕中制作出这样的广告牌呢?按
下面的步骤,可以为标题加上有四种不同效果的跑马灯背景,想知道效果如何吗,
还是赶快动手去做吧!

建立一个新的表单。进入Visual FoxPro 5.0系统环境,建立一个新的表单(
FORM1),并设置FORM1的Backcolor(背景色)属性为RGB(0,0,0)-黑色,Caption
(标题)为“跑马灯”。 
制作跑马灯背景。利用10个排成一排的竖条状的形状(SHAPE1—SHAPE10)作为跑
马灯背景。鼠标点击“表单控制栏”中的“形状”,并在FORM1上拉出一个矩形方
框(SHAPE1)。设置它的BackColor属性为RGB(0,0,0),BorderStyle(边框样
式)属性为0-透明,大小可自定。按同样方法作出另外9个,并将它们按顺序排成
一排。再制作一个SHAPE(SHAPE11)作为前十个SHAPE的边框,设置它的
BackStyle属性为0-透明,SpecialEffect(样式)为0-3D。如下图示: 
 

建立广告牌。鼠标点击“表单控制栏”中的“标签”,并在FORM1上拉出一个矩形
方框(LABEL1)。设置它的属性Caption为“效果演示”,Autosize(自动调整大
小)为.T.,Backstyle(背景状态)为0-透明,FontBold(字体粗细)为.T.,
FontName(字体名称)为“隶书”,Forecolor(字体颜色)为RGB(255,0,255)
,Fontsize(字体大小)为36。将广告牌放在跑马灯背景的上面。 
建立四个按钮。鼠标点击“表单控制栏”中的“按钮”,并在FORM1上点一下,即
可制作出一个按钮(COMMAND1),重复这一动作作出四个按钮。分别设置它们的
Caption属性为“效果一”、“效果二”、 “效果三”和 “效果四”。 
建立四个定时器。鼠标点击“表单控制栏”中的“定时器”,并在FORM1上点一下
,即可制作出一个定时器(TIMER1),重复这一动作作出四个定时器。设置它们的
Interval(定时间隔)属性为100ms,Enabled(是否可用)属性为.F.。 
编写过程。首先为FORM1增加两个新的过程:ALL_ON和ALL_OFF,可通过在表单设计
期间选择系统菜单“表单”中的“新方法”来建立。本程序中所有的过程如下: 

FORM1的ALL_ON过程:(全亮)

For I = 1 to 10

    Col = "Shape"+Alltrim(Str(I))+".BackColor"

    Thisform.&Col = RGB(255,255,0)

EndFor

FORM1的ALL_OFF过程:(全灭)

For I = 1 to 10

    Col = "Shape"+Alltrim(Str(I))+".BackColor"

    Thisform.&Col = RGB(0,0,0)

EndFor

FORM1的LOAD过程:

Public Time1,Time2

COMMAND1的CLICK过程:(效果一:轮流点亮)

Time1 = 1

Thisform.ALL_OFF

Thisform.Timer1.Enabled = .T.

Thisform.Timer2.Enabled = .F.

Thisform.Timer3.Enabled = .F.

Thisform.Timer4.Enabled = .F.

COMMAND2的CLICK过程:(效果二:按递减顺序轮流点亮,每轮保持最后一个点亮
,直到全部点亮)

Time1 = 1

Thisform.ALL_OFF

Thisform.Timer1.Enabled = .F.

Thisform.Timer2.Enabled = .T.

Thisform.Timer3.Enabled = .F.

Thisform.Timer4.Enabled = .F.

COMMAND3的CLICK过程:(效果三:按递减顺序轮流熄灭,每轮保持最后一个亮着
的灯熄灭,直到全部熄灭)

Time1 = 10

Time2 = 1

Thisform.ALL_ON

Thisform.Timer1.Enabled = .F.

Thisform.Timer2.Enabled = .F.

Thisform.Timer3.Enabled = .T.

Thisform.Timer4.Enabled = .F.

COMMAND4的CLICK过程:(效果四:奇数号灯和偶数号灯轮流点亮)

Time1 = 10

Thisform.ALL_OFF

Thisform.Timer1.Enabled = .F.

Thisform.Timer2.Enabled = .F.

Thisform.Timer3.Enabled = .T.

Thisform.Timer4.Enabled = .F.

TIMER1的TIMER过程:

Thisform.ALL_OFF

Col = "Shape"+Alltrim(Str(Time1))+".BackColor"

Thisform.&Col = RGB(255,255,0)

Time1 = Time1 + 1

If Time1 > 10 

    Time1 = 1

EndIf

TIMER2的TIMER过程:

If Thisform.Shape1.Backcolor = RGB(255,255,0) and

     Thisform.Shape2.Backcolor = RGB(255,255,0)

Time = 1

     Thisform.all_off

     Return

Endif

Col = "Shape"+Alltrim(Str(Time1))+".Backcolor"

Thisform.&Col = RGB(255,255,0)

If Time1 = 1

    Time1 = Time1 + 1

     Return

Else

     Col = "Shape"+Alltrim(Str(Time1-1))+".Backcolor"

     Thisform.&Col = RGB(0,0,0)

Endif

If Time1 = 10

     Thisform.Shape10.Backcolor = RGB(255,255,0)

     Time1 = 1

     Return

Else

     Col = "Shape"+Alltrim(Str(Time1+1))+".Backcolor"

     If Thisform.&Col = RGB(255,255,0) 

          Time1 = 1

          Return

     Endif

Endif

Time1 = Time1 + 1

TIMER3的TIMER过程:

If Time1 = 0

     Thisform.all_on

     Time1 = 10

     Time2 = 1

     Return

Endif

Col = "Shape"+Alltrim(Str( Time1))+".Backcolor"

Thisform.&Col = RGB(0,0,0)

If Time2 = 0

     Thisform.Shape10.Backcolor = RGB(0,0,0)

     Time1 = Time1 - 1

     Time2 = 10 - Time1

     Return

Else

     If Time2 # 10 - Time1

         Col = "Shape"+Alltrim(Str(10 - Time2))+".Backcolor"

          Thisform.&Col = RGB(0,0,0)

     Endif

     Col = "Shape"+Alltrim(Str(11 - Time2))+".Backcolor"

     Thisform.&Col = RGB(255,255,0)

     Time2 = Time2 - 1

Endif

TIMER4的TIMER过程:

Thisform.all_off

If Time1 < 1

     Time1 = 10

Endif

If MOD(Time1,2) = 0

     Thisform.Shape1.Backcolor = RGB(255,255,0)

     Thisform.Shape3.Backcolor = RGB(255,255,0)

     Thisform.Shape5.Backcolor = RGB(255,255,0)

     Thisform.Shape7.Backcolor = RGB(255,255,0)

     Thisform.Shape9.Backcolor = RGB(255,255,0)

Else

     Thisform.Shape2.Backcolor = RGB(255,255,0)

     Thisform.Shape4.Backcolor = RGB(255,255,0)

     Thisform.Shape6.Backcolor = RGB(255,255,0)

     Thisform.Shape8.Backcolor = RGB(255,255,0)

     Thisform.Shape10.Backcolor = RGB(255,255,0)

Endif 

Time1 = Time1 - 1

    以上程序在WINDOWS 95和Visual FoxPro 5.0中运行通过。

返回

--

       大海无边天做岸
               山登绝顶我为风

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.227.121]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.373毫秒