为什么我做的程序运行时的效果跟生成.exe后执行时的不一样?难道是XP操作系统的问题?
Label1.FontSize = Label1.FontSize + 1
For n = 1 To 2500
 r = Int(256 * Rnd)
 g = Int(256 * Rnd)
 b = Int(256 * Rnd)
Label1.ForeColor = RGB(r, g, b)Next n

解决方案 »

  1.   

    我本来想让字体在变大的同时颜色也跟着改变,用这段代码做完之后是可以实现这种效果的,但是就在生成.exe文件后我打开运行时字体并不变大啊!
      

  2.   

    用timer来做
    Private Sub Command1_Click()
        Timer1.Enabled = True
        Timer1.Interval = 10End SubPrivate Sub Form_Load()
        Timer1.Enabled = False
        
    End SubPrivate Sub Timer1_Timer()
        Static n As Integer
        
        Randomize
        
        n = n + 1
        
        Label1.FontSize = Label1.FontSize + 1
         r = Int(256 * Rnd)
         g = Int(256 * Rnd)
         b = Int(256 * Rnd)
        Label1.ForeColor = RGB(r, g, b)
        
        If n = 500 Then
            Timer1.Enabled = False
        End If
        
    End Sub
      

  3.   

    修改一下
    Private Sub Command1_Click()
        Timer1.Enabled = TrueEnd SubPrivate Sub Form_Load()
        Timer1.Enabled = False
        Timer1.Interval = 10End SubPrivate Sub Timer1_Timer()
        Static n As Integer
        
        Randomize
        
        n = n + 1
        
        Label1.FontSize = Label1.FontSize + 1
         r = Int(256 * Rnd)
         g = Int(256 * Rnd)
         b = Int(256 * Rnd)
        Label1.ForeColor = RGB(r, g, b)
        
        If n = 500 Then
            Timer1.Enabled = False
        End If
        
    End Sub
      

  4.   

    谢谢,不过我运行时真的变大了,而且字体颜色也是改变的,我用的也是timer,呵呵!
      

  5.   

    本帖最后由 bcrun 于 2010-10-10 20:48:46 编辑
      

  6.   

    For n = 1 To 2500
    *************
    这个循环没有意义
      

  7.   

    For n = 1 To 2500
     r = Int(256 * Rnd)
     g = Int(256 * Rnd)
     b = Int(256 * Rnd)
    Label1.ForeColor = RGB(r, g, b)Next n
    **************************
    你这个变化人根本感觉不到,你看到的变化是每次进timer变化的
      

  8.   

    我刚才运行了一下你的这个,还是那个原因,在生成.exe文件之后字体就不变化了,这是为什么啊?
      

  9.   

    For n = 1 To 2500
     r = Int(256 * Rnd)
     g = Int(256 * Rnd)
     b = Int(256 * Rnd)
    Label1.ForeColor = RGB(r, g, b)Next n
    **************************
    引用 8 楼 world_broken 的回复:
    人眼有0.1S的视觉暂留你这个循环变化人根本感觉不到,你看到的变化是每次进timer变化的 
     
      

  10.   


    我测试你的exe也会变化字体的
      

  11.   

    不是这样的,我设置Timer1.Interval = 500了,能感觉的到颜色,但是大小在生成.exe之后就不行了
      

  12.   


    晕,根本没看懂我的话,你这个循环变化人根本感觉不到,你看到的变化每次进timer变化
      

  13.   

    使用FontSize是有讲究的,看看这段摘自MSDN的内容:FontSize 属性 (ActiveX 控件)
          返回或设置在控件中或在运行时画图或打印操作中,显示文本所用的字体的大小。注意   包含 FontSize 属性是为了和 CommonDialog 控件一起使用,以及与以前的 Visual Basic 版本兼容。对于其它的功能,请使用新的 Font 对象属性(对 CommonDialog 控件不可用)。语法object.FontSize [= points]FontSize 属性语法包含下面部分:部分 描述 
    object 对象表达式,其值是“应用于”列表中的一个对象。 
    points 数值表达式,用磅为单位指定所用字体的大小。 
    说明用该属性以所要的字体格式化文本。缺省值由系统决定。要改变缺省值,以磅为单位指定字体尺寸。FontSize 的最大值为 2160 磅。注意 Visual Basic 中可用的字体取决于系统的配置、显示设备和打印设备。与字体相关的属性只能设置为真正存在的字体的值。一般来说,用 FontSize、FontBold、FontItalic、FontStrikethru 和 FontUnderline 属性来设置大小和样式属性前,应该先改变 FontName 属性。然而,在设置 TrueType 字体尺寸小于 8 磅时,应用 FontSize 属性来设置字体大小,然后设置 FontName 属性,用 FontSize 属性再一次设置字体大小。Microsoft Windows 运行环境对于小于 8 磅的 TrueType 字体使用不同的字体。
      

  14.   

    楼主在Rnd之前好像没有Randomize(作用是重新分配随机种子)哦
      

  15.   

    不是,我想说的意思是,你可以运行一下我做的那个程序,它绝对是可以完成预期的效果的,字体的大小和颜色是随着时间同时改变的,但是在生成.exe后就不行了,不信你试试,还有就是我做完的这个程序发给别人测试时,在一个人的电脑里是能出现预期的效果的!我不知道这是怎么回事啊?你可以先运行一下我做得。
      

  16.   

    你做的我运行和生成exe运行都没有问题,我不清楚你的电脑为什么不行