关于循环的问题

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吗?
把代码写下来好吗?
...全文
23 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧