微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题程序接龙
栏目软件世界
作者杨太兴
发布2000年第44期
  在编程中我们常常通过将两个标签错落排列,以使显示的字符呈现阴影效果。受此启发,本人对《电脑报》第40期17版上的“霓虹灯”效果程序稍作改动——即将原程序设计中“一个字符用一个标签”改为一个字符用多个标签,顺利实现了程序接龙要求:在VB程序中能同时用多种颜色显示一个字符。
  实现原理:
  这里我们假设一个字符用3个标签(AutoSize属性为False),让这3个标签分别只显示出Caption的某一部分(左中右),然后将这3个标签从左至右顺序相连组成一个完整的字符,这样就可同时在一个字符上呈现3种色彩。如果愿意,你可以用更多个标签来组成一个字符,这样每一个字符同时呈现的色彩会更丰富、整体效果也会更好些。
  实现方法:
  只需在原“霓虹灯”效果程序的基础上增添足够的标签,然后按上述原理调整好标签位置,并将程序代码中涉及到标签个数之处作相应变动,仅此而已!当然为了使“霓虹灯”的色彩变换更平滑,可增加合成渐变色的种数。以下示例中合成渐变色由原21种增加至51种,并在窗体上增加了一水平滚动条HScroll2用以控制渐变效果。虽然也只摸拟了三种霓虹灯样式,但通过HScroll1改变定时器延时值或通过HScroll2控制用于渐变的颜色数,会产生很多效果。
  窗体设置好后,加入以下代码试试!
  程序代码:
  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继续关注“程序接龙”栏目。)