注册 登录
编程论坛 VB6论坛

vb双击窗体出现错误308

酱油呀 发布于 2021-08-26 11:08, 1323 次点击
form1. backcolor=form1.backcolor+252525
(双击窗体进行不断改变颜色)
我用这个代码以后就出现308哪里出问题了呢
只有本站会员才能查看附件,请 登录
9 回复
#2
风吹过b2021-08-26 17:51
你那个 252525 是什么意思?
颜色是使用 rgb(25,25,25)来表示,不能直接写 252525 ,
rgb(25,25,25)= 1644825
颜色最大值 rgb(255,255,255)=16777215 ,超过了这个值就会出现无效性性值。

rgb(255,255,255)是纯白色,你窗体原始颜色就偏拍,值 比较大,加上252525后,就很容易超过 16777215 范围。
--------------------
你这个程序里,需要对颜色值先用除法计算出 rgb 各自的值来,然后 在 0-255的范围内进行变化,最后再合并进去。


[此贴子已经被作者于2021-8-27 21:30编辑过]

#3
you1578277152021-08-27 09:20
可以用
a=Int(Rnd*256)
b=Int(Rnd*256)
c=Int(Rnd*256)
form1.Backcolor=RGB(a,b,c)
也可用
Form1.Backcolor= Rgb(and*256,and*256,and*256)
试下
#4
酱油呀2021-08-27 09:20
回复 2楼 风吹过b
我的天啊,我是个小白这些都暂时还不懂,就是我想知道,
如何去除呢,可以帮忙解释一下嘛,我有太多的疑问了
我看你说的rgb(25,25,25)=****是怎么计算出来呢
#5
酱油呀2021-08-27 09:21
回复 3楼 you157827715
答案我是知道了,我就是不知道如何去求256这个数,
是需要用到函数吗,我是个小白这些我还真的不懂
#6
you1578277152021-08-27 15:48
回复 5楼 酱油呀
只有本站会员才能查看附件,请 登录

其实我也是小白! 接触vb6没多久!
#7
风吹过b2021-08-27 21:29
颜色值,在内存里占用3个字节,对应的 从高到低是 b g r ,
long 在内存里占用4个字节,所以颜色值放long 值中,从高到低4个字节分别是: 00 b g r 。
而long 4字节表示为10进制时,把这三个值乘固定值加起来。
rgb(1,2,3) = 3*256*256+2*256+1 = 197121

#8
酱油呀2021-08-27 22:27
回复 6楼 you157827715
好的,谢谢大佬,你也好好好学习
#9
酱油呀2021-08-27 22:29
回复 7楼 风吹过b
还是有一点点不懂,我自己去摸索摸索吧,自学还没有学到10进制和16进制还有函数,我慢慢学,谢谢大佬
#10
cwa99582021-08-28 16:40
出问题了,就是看看对应的错误代码的帮助,F1就有了。
1