菜鸟捉虫(25) 2001年 25期 #1上期正确答案:   做“循环的飞字”关键在于判断飞字的当前位置,从而做出字体是否到达边界的处理。程序中有两处错误。错误1:无时间间隔的设置timer1的timer事件将永远不会执行;错误2:无边界的判定就不会出现循环的效果。   Private Sub Form_Load()   Timer1.Interval = 10 '//无此行,错误1   Label1.Left = -Label1.Width   End Sub   Private Sub Timer1_Timer()   Label1.Left = Label1.Left + 50   If Label1.Left > Me.Width Then Label1.Left = -Label1.Width '//无此行,错误2   Label1.Move Label1.Left   End Sub   以下是第23期“菜鸟捉虫”幸运读者名单(奖品为2001年《电脑报配套光盘》系列)   #1本期题目:   现有一程序,其主要目的是在一数组中实现从大到小的排序功能,程序在编译后,却不能达到排序的目的,请找出其中的错误。程序中有1个CommandButton按钮和3个Label标签,其中Label1的Caption属性设置为“请输入排序的数字个数:”。   Dim MyArray() As Long   Dim Record As Long   Private Sub Command1_Click()   Dim i As Long, b As String   Record = Val(Text1.Text)   If Record <= 0 Then Exit Sub   ReDim MyArray(Record - 1)   '//动态生成数组   Randomize   For i = 0 To Record - 1   '//随机产生数字   MyArray(i) = Int((1000 * Rnd) + 1)   b = b & Str(MyArray(i)) & “ | ”   Next i   Label2.Caption = “排序前:” + b   Call Func(1): b = “”   For i = 0 To Record - 1   b = b & Str(MyArray(i)) & “ | ”   Next i   Label3.Caption = “排序后:” + b   Erase MyArray '//释放内存   End Sub   Private Sub Func(ByVal f As Long)   Dim a As Long, b As Long, i As Long   Dim flg As Boolean   flg = False: a = 0: b = 0   For i = f To Record - 1   If a < MyArray(i) Then   a = MyArray(i): flg = True   b = I:exit for   End If   Next i   If flg Then   MyArray(b) = MyArray(f)   MyArray(f) = a   f = f + 1   Call Func(f)   End If   End Sub