程序接龙

Author: 马致明 Date: 2000年 第40期

  在36期第17版小编刊登了《“程序接龙”征稿启事》之后,立即收到了很多PFans的来信,纷纷表示这个创意很不错,但同时也提出了问题,因为要将我们的PFans团结起来可不是一件容易的事情。来信的PFans都提出了很好的idea,由于版面有限,我们将暂时无法发表的创意公布在我们的俱乐部网站(www.pcwclub.com)以供所有PFans交流。
  为了实现某种特效或功能,许多PFans真是煞费苦心!有时突发的灵感会巧妙地解决一些“疑难杂症”,将这些“灵丹妙药”在《编程乐园》中介绍给PFans们,相互借鉴,本身就是一种学习、提高的绝好机会。“滴水可以荡起涟漪”,有时你的思路可能会引出更好的方案,甚至可能产生出更新更高层次的问题。将这些方案介绍给读者,问题交给PFans,大家相互学习和交流,这不正是我们这个《编程乐园》的乐趣所在吗?将类似的问题深入下去,这也不是一种更有价值的“程序接龙”吗?
  “程序接龙”不只限于全新的想法,你也可以对曾经在《电脑报》上发表过的编程文章进行二度创作。比如本期就将刊登关于36期17版《如何实现霓虹灯效果》一文的改进版本。呵呵,我想等到再发表几期之后,你就可以做出一个完美的霓虹灯模拟器!没有做不到的,就怕你想不到!
  受《如何实现霓虹灯效果》一文的启示,新疆的PFans马致明又探索出三种非常理想的霓虹灯效果:一是在颜色渐变的同时呈现在不同字符上并且不断循环变换;二是多种颜色同时呈现在不同字符上并且不断循环变换;三是所有字符在同一瞬间时用渐变色中的一种颜色并且不断循环变换。此外,本文所给的示例程序用静态变量大大缩减了程序代码(如果原文中的 chc过程使用此方法,可将其10行代码缩减为3行)。
#1    程序介绍
  窗体上放置的控件有:具有3 个元素的命令按钮(CommandButton)数组Command1,Caption依次为“异步渐变色变换”、“异步多色变换”、“同步渐变色变换”;具有13 个元素、BackStyle(背景类型)属性为Transparent(透明)的标签(Label)数组L,其Caption为“你好,《电脑报》软件世界!”,一个字符用一个标签;定时器Timer1,用来控制闪烁的节奏;水平滚动条HScroll1,与Timer1配合用来控制闪烁的快慢。
  设置好控件后,添加以下代码:
  Dim Choise As Byte
  Dim R(20) As Byte, G(20) As Byte
  Private Sub Form_Load() ′霓虹灯
  Dim j As Byte
  Form1.WindowState=2
  For j=0 To 10 ′合成21种渐变色
  R(j)=250-j*25 ′红变绿
  G(j)=j*25
  R(20-j)=R(j) ′绿变红
  G(20-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 12 ′改变12个标签的颜色
  Select Case Choise
  Case 0 ′异步渐变色变换
  C=(i+j) Mod 21
  L(j).ForeColor=RGB(R(C), G(C), 0)
  Case 1 ′异步多色变换
  C=((i+j) Mod 6)+9
  L(j).ForeColor=QBColor(C)
  Case 2 ′同步渐变色变换
  C=i Mod 21
  L(j).ForeColor=RGB(R(C), G(C), 0)
  End Select
  Next j
  End Sub
  Private Sub Command1_Click(Index As Integer)
  Choise=Index ′按钮选项号
  End Sub
  Private Sub HScroll1_Change() ′控制快慢
  Timer1.Interval=HScroll1*20
  End Sub
#1    再接再励
  用渐变色来实现霓虹灯效果,新颖又美观。本文虽然涉及到此方法,但是同一个字只能用一种颜色;若哪位PFans在VB程序中能同时用多种颜色呈现一个字,那绝对是最佳的霓虹灯效果!到时也希望你能把自己的思路和技巧介绍给大家,相互学习和提高是我们PFans的共同目标。