| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 595 人关注过本帖
标题:一个简单的vb问题,请教
只看楼主 加入收藏
shydshjg
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-5-5
收藏
 问题点数:0 回复次数:3 
一个简单的vb问题,请教

要求:编写动画程序。单击“开始”按钮,图像从左到右不断运动,“开始”按钮变为不可用,同时“停止”变为可用;用滚动条来控制运动的速度。
Private Sub Form_Load()
Image1.Stretch = True
Image1.Picture = LoadPicture("C:\Documents and Settings\Administrator\My Documents\My Pictures\941.gif")
VScroll1.Max = 20000
VScroll1.Min = 1
VScroll1.LargeChange = 100
VScroll1.SmallChange = 15
End Sub
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Picture1.Move Picture1.Left
End Sub
Private Sub VScroll1_Change()
Timer1.Interval = VScroll1.Value
End Sub
为什么在VScroll1.Max = 20000一行会显示实时错误424,不知道上述错在哪里?另外怎样把图片从左到右运动?请高手指教。

搜索更多相关主题的帖子: 按钮 运动 Documents Pictures 
2007-05-05 12:49
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 

1、程序没有像你说的提示出错,估计是你的控件属性设置有问题。
2、你的程序并不会移动图片,Move方法使用错(在你的需求下)
下面是我帮你修改的代码:
Option Explicit


Private Sub Form_Load()
Image1.Stretch = True
Image1.Picture = LoadPicture("C:\Documents and Settings\Administrator\My Documents\My Pictures\941.gif")
VScroll1.Max = 20000
VScroll1.Min = 1
VScroll1.LargeChange = 100
VScroll1.SmallChange = 15
End Sub
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
Static Flag As Boolean
If Flag And Picture1.Left <= 0 Then
Flag = False
ElseIf Not Flag And Picture1.Left + Picture1.Width > Me.Width - 50 Then
Flag = True
End If
Picture1.Move Picture1.Left + IIf(Flag, -3, 3)
End Sub
Private Sub VScroll1_Change()
Timer1.Interval = VScroll1.Value
End Sub


VB QQ群:47715789
2007-05-05 13:04
June2Ling
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-4-9
收藏
得分:0 

Private Sub Form_Load()
Image1.Stretch = True
Image1.Picture = LoadPicture("C:\Documents and Settings\Administrator\My Documents\My Pictures\941.gif")
VScroll1.Max = 100
VScroll1.Min = 1
VScroll1.LargeChange = 100
VScroll1.SmallChange = 15
Timer1.Interval = 1000
End Sub
Private Sub Command1_Click()
Command1.Enambled = False
Command2.Enambled = True
Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
Command1.Enambled = True
Command2.Enambled = False
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Picture1.Left = Picture1.Left+10

IF Picture1.Left >= Me.Left - Picture1.Left THEN
Picture1.Left = Me.Left - Picture1.Left
Command2_Click()
END IF
End Sub
Private Sub VScroll1_Change()
Timer1.Interval = VScroll1.Value
End Sub

应该可以实现功能了吧


六月JVL风铃
2007-05-05 13:11
shydshjg
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-5-5
收藏
得分:0 
回复:(Joforn)1、程序没有像你说的提示出错,估计是...
仍然有VScroll1.Max = 20000实时错误424,是vscroll属性的问题吗
我的属性是这样的
causes validati true
dradicon (none)
dragmode 0-manual
enabled true
height 615
helpcontext 0
index
largechange 1
left 600
max 20000
min 0
mouseicon (none)
mousepointer 0-default
righttoleft false
smallchange 1
tabindex 2
tabstop true
tag
top 240
value 0
visible true
whatsthishelpi 0
width 1935
2007-05-05 14:22
快速回复:一个简单的vb问题,请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035199 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved