vb怎么用timer不断改变line方法的line颜色呢?
答案:4 悬赏:20 手机版
解决时间 2021-02-11 08:02
- 提问者网友:谁的错
- 2021-02-10 08:31
vb怎么用timer不断改变line方法的line颜色呢?
最佳答案
- 五星知识达人网友:洒脱疯子
- 2021-02-10 09:00
'对线条进行覆盖就可以了。请参考采纳。
Private Sub Form_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
DrawWidth = 10 '线条宽度
Line (500, 500)-(4000, 500), RGB(Int(Rnd * 255), Int(Rnd * 255), Int(Rnd * 255)) '设置随机颜色
End Sub
Private Sub Form_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
DrawWidth = 10 '线条宽度
Line (500, 500)-(4000, 500), RGB(Int(Rnd * 255), Int(Rnd * 255), Int(Rnd * 255)) '设置随机颜色
End Sub
全部回答
- 1楼网友:一秋
- 2021-02-10 11:00
利用随机数函数生成 颜色值 做RGB颜色函数的三个颜色量
Private Sub Form_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Dim a(1 To 4) As Long
Dim i As Integer
Randomize
For i = 1 To 4
a(i) = Int(Rnd * Me.Height)
Next
Line (a(1), a(2))-(a(3), a(4)), RGB(Int(Rnd * 255), Int(Rnd * 255), Int(Rnd * 255))
End Sub
- 2楼网友:一叶十三刺
- 2021-02-10 10:03
option explicit
dim n as long
private sub form_load()
n = label1.backcolor
timer1.interval = 3000
end sub
private sub timer1_timer()
static i as integer
dim j as integer
i = (i + 1) mod 7
if i = 0 then i = 7
j = i - 1
if j = 0 then j = 7
controls("label" & cstr(i)).backcolor = vbred
controls("label" & cstr((j))).backcolor = n
end sub
vb6测试通过。
- 3楼网友:十鸦
- 2021-02-10 09:29
Line 方法的语法如下:
object.Line [Step] (x1, 1) [Step] (x2, y2), [color], [B][F]
这里的color是可选的。Long (长整型数),画线时用的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。
RGB 函数:返回一个 Long整数,用来表示一个 RGB 颜色值。
语法:RGB(red, green, blue)
RGB 函数的语法含有以下这些命名参数:
red 必要参数;Variant (Integer)。数值范围从 0 到 255,表示颜色的红色成份。
green 必要参数;Variant (Integer)。数值范围从 0 到 255,表示颜色的绿色成份。
blue 必要参数;Variant (Integer)。数值范围从 0 到 255,表示颜色的兰色成份。
由以上知识,我们可以找到解决问题的办法:
分别声明red、green、blue等3个模块级变量,在Timer控件的Timer事件过程中逐步累加,
在Line方法中应用RGB(red, green, blue)获得color值。
OK!Line方法绘制出来的线条颜色就是变化的了!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯