网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月15日漏签0天
vb吧 关注:156,119贴子:1,166,151
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 22回复贴,共2页
  • ,跳到 页  
<<返回vb吧
>0< 加载中...

大侠:帮我看看程序啊

  • 只看楼主
  • 收藏

  • 回复
  • windrainlhb
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这样写虽然达到了效果,但总感觉有点傻,有没有更简单的写法啊,我是新手+大菜鸟,晕!

Private Sub start()
a% = 0
For b% = 1 To 7
a% = a% + 1
If a% = 1 Then Picture1.Visible = True
If a% = 2 Then Picture2.Visible = True
If a% = 3 Then Picture3.Visible = True
If a% = 4 Then Picture4.Visible = True
If a% = 5 Then Picture5.Visible = True
If a% = 6 Then Picture6.Visible = True
If a% = 7 Then Picture7.Visible = True
t = Timer
    Do
        DoEvents
    Loop Until Timer > t + 0.1
Picture1.Visible = False
Picture2.Visible = False
Picture3.Visible = False
Picture4.Visible = False
Picture5.Visible = False
Picture6.Visible = False
Picture7.Visible = False
Next
End Sub

Private Sub Command1_Click()
Call start
Call start
End Sub


  • sz漫步者
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我的CPU是单核3.0G的:

运行上面的代码,CPU使用率上升到 50% 以上

运行下面的代码,CPU使用率在0%-2%之间

在窗体中添加个 Timer 控件,复制下面代码:

Private Sub Command1_Click()
 If Timer1.Enabled = True Then
 Timer1.Enabled = False
 Command1.Caption = "开始"
 Else
 Timer1.Enabled = True
 Command1.Caption = "结束"
 End If
End Sub


Private Sub Timer1_Timer()
Static i As Integer
 i = i + 1
 If i <= 7 Then
 Me("Picture" & i).Visible = True
 If i > 1 Then
 Me("Picture" & i - 1).Visible = False '将上一个显示的控件隐藏
 Else
 Me("Picture7").Visible = False
 End If
 Else
 i = 0
 End If
End Sub


2025-06-15 20:54:28
广告
  • windrainlhb
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我说大哥,你的代码不行啊,
我要的是从图片1每隔0.1秒连续显示到图片7的动画效果,
而你的程序只是在Command1上显示开始和结束,图片并不显示啊


  • sz漫步者
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
晕了,没有设定时间,当然无法执行

'你先把所有的Picture设置为隐藏的
Private Sub Form_Load()
 Timer1.Interval = 100'设定timer间隔时间为100ms
End Sub


  • windrainlhb
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
恩,这位大虾很不错的,TIMER用的不错,可以显示了。但和我说的不太一样。

我的思路是:假如有很多COMMAND,我每点一个COMMAND,都先演示一遍那个TIMER动画事件,然后再继续其他语句,用COMMAND控制动画开始,动画自己演示一遍后消失,而不是用COMMAN再控制它结束


  • windrainlhb
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
或者就1个COMMAND,是在COMMAND的某些语句中调用动画事件,然后再进行其他语句,而不是用COMMANG来控制动画结束,是动画演示完自己结束的。
咋整啊,帮帮


  • sz漫步者
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
很简单,你在Tiemr事件中做结束判断

Private Sub Timer1_Timer() 
Static i As Integer 
 i = i + 1 
 If i <= 7 Then 
 Me("Picture" & i).Visible = True 
 If i > 1 Then 
 Me("Picture" & i - 1).Visible = False '将上一个显示的控件隐藏 
 Else 
 Me("Picture7").Visible = False 
 End If 
 Else '如果循环结束,则执行以下代码

 i = 0 '重新开始
 Timer1.Enabled = False '结束循环

 End If 
End Sub 

若你想循环N次

Private Sub Timer1_Timer() 
static mCount as integer
Static i As Integer 

 i = i + 1 
 If i <= 7 Then 
 Me("Picture" & i).Visible = True 
 If i > 1 Then 
 Me("Picture" & i - 1).Visible = False '将上一个显示的控件隐藏 
 Else 
 Me("Picture7").Visible = False 
 End If 
 Else '如果循环结束,则执行以下代码

 i = 0 '重新开始
 mCount=mCount+1
 if mCount>=1 then'循环一次结束,可以使任意Integer值
 mcount =0
 Timer1.Enabled = False '结束循环
 end if

 End If 
End Sub


  • jwjsb
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
'竟然可以这样使用控件,感谢[sz漫步者],使用mod做的
'Command1,Picture1--picture7,Timer1

Dim T As Long

Private Sub Command1_Click()
Timer1.Interval = 100
T = -1

Timer1.Enabled = True
End Sub

Private Sub Form_Load()
For i = 1 To 7
 Me("Picture" & i).Visible = False '感谢[sz漫步者]教会我这样使用控件
Next
Timer1.Enabled = False
Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
T = T + 1

j = (T + 6) Mod 7 + 1
Me("Picture" & j).Visible = False '将上一个显示的控件隐藏

If T >= 14 Then '>=控件数*循环次数时结束
 Timer1.Enabled = False
 Exit Sub
End If

i = T Mod 7 + 1
Me("Picture" & i).Visible = True '显示控件
End Sub


2025-06-15 20:48:28
广告
  • yigan1
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
又学到了一招,“Me("Picture" & j).”,多谢漫步者跟jwjsb


  • windrainlhb
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
感谢,高手云集,这招绝对不错啊,Me("Picture" & j),真好!


  • windrainlhb
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
对了,再问下:在command中触发这个事件,如果想触发很多次,8楼的是不每次都要写这些代码啊?

如果像漫步者那么做,在command中要怎么写代码?简单的call好像不行啊,我实验了,只能显示第1个画


  • jwjsb
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
'不是阿。我在8F的代码跟漫步者的基本相同
'将下面这句:
If T >= 14 Then '>=控件数*循环次数时结束 
'改为下面这样可能更好理解:
N=2 '循环次数
If t>=7*n then


  • sz漫步者
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
若用在7楼的代码,Command 事件代码

Private Sub Command1_Click() 
 If Timer1.Enabled = True Then 
 Timer1.Enabled = False 
 Command1.Caption = "开始" 
 Else 
 Timer1.Enabled = True 
 Command1.Caption = "结束" 
 End If 
End Sub


  • 61.167.20.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
13楼,万分感谢,但不是这样子的。我的意思是:用COMMAND控制开始,但不控制结束。

Private Sub Command1_Click() 
 
(这里怎么写,出现TIMER事件?然后继续下面的程序。)

Tf X%+Y%>100 THEN label1.caption = "你输入的数字大于100"
Picture1.Visible = true
End Sub


2025-06-15 20:42:28
广告
  • sz漫步者
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Timer1.Enabled = True '启动Timer,就可以开始循环了


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 22回复贴,共2页
  • ,跳到 页  
<<返回vb吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示