黑客X档案官方论坛's Archiver

164915999 发表于 2008-3-8 15:21

vB做的哦

最近学了一阵子VB然后就做了这个电子贺卡  这是一个结合时间控件做的电子卡  喜欢可以去试下(第一次 做的哦。。做的不好请各位指教)
Dim x, y, i As Integer
Private Sub Form_Load()
Timer1.Interval = 500
End Sub
Private Sub Timer1_Timer()
Label1.FontSize = 24
Scale (-320, 320)-(320, -320)
Cls
For i = 1 To 80
DrawWidth = 6
x = Rnd * 320
y = Rnd * 320
If Rnd < 0.5 Then x = -x
If Rnd < 0.5 Then y = -y
PSet (x, y), QBColor(Rnd * 15)
Next
If Label1.Left + Label1.Width > 0 Then
Label1.Left = Label1.Left - 200
Else
Label1.Left = Form1.Width
End If
End Sub

金其 发表于 2008-3-8 16:39

我试了一下,发现个问题,提点建议:

If Label1.Left + Label1.Width > 0 Then
Label1.Left = Label1.Left - 200
Else
Label1.Left = Form1.Width
End If
改为
If Label1.Left + Label1.Width > -320Then
Label1.Left = Label1.Left - 200
Else
Label1.Left = 320
End If
还有200太快了,改成80差不多

164915999 发表于 2008-3-8 17:04

如果 Label1.Left = Form1.Width改成 Label1.Left = 320那么label就不能从右边的窗体出来了  ,,只能在窗体的左边320的位置出现了 。这样就效果就不明显了

Zatans 发表于 2008-3-8 18:33

'我这边调试没效果,所以改了一下。
'Dim x, y, i As Integer这句里面的变量x,y都不是Integer的,而是Variant。


Dim x As Integer, y As Integer, i As Integer

Private Sub Form_Load()

Timer1.Interval = 500

End Sub

Private Sub Timer1_Timer()

Label1.FontSize = 24

Scale (-320, 320)-(320, -320)

Cls

DrawWidth = 6

For i = 1 To 80
   
   x = Rnd * 320
   
   y = Rnd * 320
   
   If Rnd < 0.5 Then x = -x
   
   If Rnd < 0.5 Then y = -y
   
   PSet (x, y), QBColor(Rnd * 15)
   
Next i

If Label1.Left + Label1.Width < 320 Then

   Label1.Left = Label1.Left + 100
   
Else

   Label1.Left = -330
   
End If

End Sub

金其 发表于 2008-3-9 10:41

楼主有Scale (-320, 320)-(320, -320)这句话定义了新坐标。所以320就代表窗体最右端
而用form.width反而不正确了

金其 发表于 2008-3-9 10:45

楼主若用文字把label写满,运行时就会发现文字右端一过中点就没了,而且要很久才从右端出来,而不是立即出来

521322132 发表于 2008-4-15 09:10

调试了下,感觉把字幕效果放到FORM LOAD中比较好,呵呵
Private Sub Form_Load()
Timer1.Interval = 500
Label1.Caption = "热烈欢迎"
Label1.FontSize = 24
End Sub

白痴娃娃 发表于 2008-4-16 00:05

如果是原创的话应该支持一下
欢迎以后多发原创作品
现在原创作品好少的
不过先支持一下LZ的勇敢
继续努力哟~

页: [1]


Powered by Discuz! 6.1.0  © 2001-2007 Comsenz Inc.