程序接龙
#1 实现原理:
这里我们假设一个字符用3个标签(AutoSize属性为False),让这3个标签分别只显示出Caption的某一部分(左中右),然后将这3个标签从左至右顺序相连组成一个完整的字符,这样就可同时在一个字符上呈现3种色彩。如果愿意,你可以用更多个标签来组成一个字符,这样每一个字符同时呈现的色彩会更丰富、整体效果也会更好些。
#1 实现方法:
只需在原“霓虹灯”效果程序的基础上增添足够的标签,然后按上述原理调整好标签位置,并将程序代码中涉及到标签个数之处作相应变动,仅此而已!当然为了使“霓虹灯”的色彩变换更平滑,可增加合成渐变色的种数。以下示例中合成渐变色由原21种增加至51种,并在窗体上增加了一水平滚动条HScroll2用以控制渐变效果。虽然也只摸拟了三种霓虹灯样式,但通过HScroll1改变定时器延时值或通过HScroll2控制用于渐变的颜色数,会产生很多效果。
窗体设置好后,加入以下代码试试!
#1 程序代码:
Option Explicit
Dim choise As Byte
Dim R(50) As Byte,G(50) As Byte
Private Sub Form_Load()
Dim j As Byte
Me.WindowState=2
For j=0 To 25 ′合成渐变色(由原21种增加到51种,使其更平滑)
R(j)=250-j * 10 ′红变绿
G(j)=j * 10
R(50-j)=R(j) ′绿变红
G(50-j)=G(j)
Next j
End Sub
Private Sub Timer1_Timer() ′变换色彩
Static i As Long
Dim j As Byte,C As Byte
i=i+1
For j=0 To 38 ′改变所有标签的颜色
Select Case choise
Case 0: ′背景渐变
C=(i+j) Mod HScroll2
L(j).BackColor=RGB(R(C),G(C),0)
Case 1: ′字符渐变
C=(i+j) Mod HScroll2
L(j).ForeColor=RGB(R(C),G(C),0)
Case 2: ′背景多变
C=((i+j) Mod 6)+9
L(j).BackColor=QBColor(C)
End Select
Next j
End Sub
Private Sub Command1_Click(Index As Integer)
choise=Index′按钮选项号
′以下5行可省略!此处仅为切换演示各种霓虹灯效果所需。
Dim j As Byte
For j=0 To 38
Me.L(j).BackStyle=IIf(choise=1,0,1) ′决定标签是否透明
Me.L(j).ForeColor=QBColor(10+Index) ′使各种霓虹灯效果有固定的前景色
Next j
End Sub
Private Sub HScroll1_Change() ′控制快慢
Timer1.Interval=HScroll1
End Sub
(编者注:至此,我们关于“霓虹灯”效果的接龙就告一段落了。希望各位PFans继续关注“程序接龙”栏目。)