关于循环的问题

banner90 2003-05-08 10:16:11
这是我想循环的过程
Map1.SelectionStyle.RegionBackColor = RGB(255, 0, 0)
我想1秒后运行这个过程
Map1.SelectionStyle.RegionBackColor = RGB(0, 255, 0)
这是一个变色的过程,我想使他一闪一闪的,
for ????

???????

next

可以用TIMER吗?
把代码写下来好吗?
...全文
4 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
banner90 2003-05-08
这个过程我不是一次调用,因为我只是循环5次,如果要的二次调用的话是不是在按钮上先声明Ttag =1?我不记得了怎么调用TIMER,请高手执教,我只是在TIMER属性那里设置时间变量可以吗?还要不要在LOAD那里设置?
回复
victorycyz 2003-05-08
先声明一下sleep,可以从API浏览器中复制过来。
for i=0 to 4
Map1.SelectionStyle.RegionBackColor = RGB(255, 0, 0)
sleep 1000
Map1.SelectionStyle.RegionBackColor = RGB(0, 255, 0)
sleep 1000
next i
Map1.SelectionStyle.RegionBackColor = RGB(255, 0, 0)
回复
qingming81 2003-05-08
如果只需要闪5次,定义一个全局integer变量为Ttag,Load时
Ttag =1
在Timer中如下写

if Ttag <= 5 then
if Ttag mod 2 then
Map1.SelectionStyle.RegionBackColor = RGB(255, 0, 0)
else
Map1.SelectionStyle.RegionBackColor = RGB(0,255, 0)
end if
Ttag =Ttag +1
end if


回复
qingming81 2003-05-08
二楼的使用mod来处理,xo2000(CSDN上必有我师) 的要简洁些
回复
xayzmb 2003-05-08
在timer1_time事件里添加以下代码
将timer1的触发周期设为500(半秒)
static T as long
if T > 1 then
T =0
Map1.SelectionStyle.RegionBackColor = RGB(255, 0, 0)
else
T = T +1
Map1.SelectionStyle.RegionBackColor = RGB(0, 255, 0)
end if
回复
banner90 2003-05-08
二楼的我看不明白,我是在一个按钮里面调用这个过程,
我想要两种颜色交替出现,循环5次后就不闪,只显示(255, 0, 0)
回复
banner90 2003-05-08
哦?上面就是一个循环过程?我用的是VB阿,,怎么调用这个程序?
回复
xo2000 2003-05-08
Dim i As Integer

Private Sub Form_Load()
i = 0
End Sub

'设置interval=1000
Private Sub Timer1_Timer()
If i = 0 Then
Map1.SelectionStyle.RegionBackColor = RGB(255, 0, 0)
i = 1
Exit Sub
End If
If i = 1 Then
Map1.SelectionStyle.RegionBackColor = RGB(0, 255, 0)i = 0
Exit Sub
End If

End Sub
回复
KiteGirl 2003-05-08
小意思:

先在窗体里定义:

public pubAdd as Integer

然后在定时器过程里定义:

pubAdd=(pubAdd+1) Mod 2

If tAdd Then
Map1.SelectionStyle.RegionBackColor = RGB(255, 0, 0)
Else
Map1.SelectionStyle.RegionBackColor = RGB(255, 0, 0)
End If

如果你想更多种颜色不断变化可以这样:

public pubIndex as Integer '颜色索引
public pubColors() as Long '颜色数组
public pubColorsCount '颜色数

pubColorsCount=颜色数

ReDim pubColors(pubColorsCount) '定义

<然后依次给pubColors()的每个元素设置颜色>

接着在定时器里这样写:

pubIndex=(pubIndex+1) Mod pubColorsCount

Map1.SelectionStyle.RegionBackColor = pubColors(pubIndex)
回复
banner90 2003-05-08
可以了,原来那个Timer1.enabled = False我放到了end if后面
回复
banner90 2003-05-08
不行,颜色重叠,因该只是做了一次
回复
qingming81 2003-05-08
你可以在循环5次后,设置
Timer1.enabled =flase
调用时设置

Timer1.enabled =True

在Timer中代码修改如下:

if Ttag <= 5 then
if Ttag mod 2 then
Map1.SelectionStyle.RegionBackColor = RGB(255, 0, 0)
else
Map1.SelectionStyle.RegionBackColor = RGB(0,255, 0)
end if
Ttag =Ttag +1
else
Ttag =1
Timer1.enabled = False
end if
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7492

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2003-05-08 10:16
社区公告
暂无公告