Wrox Home  
Search P2P Archive for: Go

  Return to Index  

pro_vb thread: Label Marquee in VB 6


Message #1 by sorith@h... on Tue, 3 Dec 2002 12:07:53
Rith,

In the spirit of keeping this a place where one can go without being "beat
up", here's a simple project to demonstrate a solution -- just for fun I
made it work in all four directions, rather than just right and left.  See
what you think.

In a new project, put four timers and a picture box on Form1, then put a
label in the picture box (the picture box must be the label's parent
object).  Let all the objects default to standard names.  Paste the
following into the code of Form1 and give it a try:

Option Explicit

Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyEscape Then
        Timer1.Enabled = False
        Timer2.Enabled = False
        Timer3.Enabled = False
        Timer4.Enabled = False
        Unload Me
    End If
End Sub

Private Sub Form_Load()
    Timer4.Enabled = False
    Timer3.Enabled = False
    Timer2.Enabled = False
    Timer1.Enabled = False

    Me.Width = 2200
    Me.Height = 2000

    Picture1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight

    Label1.Caption = "O"
    Label1.Width = 135
    Label1.Height = 195
    Label1.Top = 0
    Label1.Left = 0

    Timer1.Interval = 2
    Timer2.Interval = 2
    Timer3.Interval = 2
    Timer4.Interval = 2

    Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer()
    If (Label1.Left + Label1.Width + 25) > Picture1.ScaleWidth Then
        If (Label1.Top + Label1.Height + 25) > Picture1.ScaleHeight Then
            Label1.Move (Label1.Left - 25), (Label1.Top - 25)
            Timer1.Enabled = False
            Timer4.Enabled = True
        Else
            Label1.Move (Label1.Left - 25), (Label1.Top + 25)
            Timer1.Enabled = False
            Timer2.Enabled = True
        End If
    Else
        If (Label1.Top + Label1.Height + 25) > Picture1.ScaleHeight Then
            Label1.Move (Label1.Left + 25), (Label1.Top - 25)
            Timer1.Enabled = False
            Timer3.Enabled = True
        Else
            Label1.Move (Label1.Left + 25), (Label1.Top + 25)
            Timer1.Enabled = True
        End If
    End If

End Sub

Private Sub Timer2_Timer()
    If (Label1.Left - 25) < 0 Then
        If (Label1.Top + Label1.Height + 25) > Picture1.ScaleHeight Then
            Label1.Move (Label1.Left + 25), (Label1.Top - 25)
            Timer2.Enabled = False
            Timer3.Enabled = True
        Else
            Label1.Move (Label1.Left + 25), (Label1.Top + 25)
            Timer2.Enabled = False
            Timer1.Enabled = True
        End If
    Else
        If (Label1.Top + Label1.Height + 25) > Picture1.ScaleHeight Then
            Label1.Move (Label1.Left - 25), (Label1.Top - 25)
            Timer2.Enabled = False
            Timer4.Enabled = True
        Else
            Label1.Move (Label1.Left - 25), (Label1.Top + 25)
            Timer2.Enabled = True
        End If
    End If

End Sub

Private Sub Timer3_Timer()
    If (Label1.Left + Label1.Width + 25) > Picture1.ScaleWidth Then
        If (Label1.Top - 25) < 0 Then
            Label1.Move (Label1.Left - 25), (Label1.Top + 25)
            Timer3.Enabled = False
            Timer2.Enabled = True
        Else
            Label1.Move (Label1.Left - 25), (Label1.Top - 25)
            Timer3.Enabled = False
            Timer4.Enabled = True
        End If
    Else
        If (Label1.Top - 25) < 0 Then
            Label1.Move (Label1.Left + 25), (Label1.Top + 25)
            Timer3.Enabled = False
            Timer1.Enabled = True
        Else
            Label1.Move (Label1.Left + 25), (Label1.Top - 25)
            Timer3.Enabled = True
        End If
    End If

End Sub

Private Sub Timer4_Timer()
    If (Label1.Left - 25) < 0 Then
        If (Label1.Top - 25) < 0 Then
            Label1.Move (Label1.Left + 25), (Label1.Top + 25)
            Timer4.Enabled = False
            Timer1.Enabled = True
        Else
            Label1.Move (Label1.Left + 25), (Label1.Top - 25)
            Timer4.Enabled = False
            Timer3.Enabled = True
        End If
    Else
        If (Label1.Top - 25) < 0 Then
            Label1.Move (Label1.Left - 25), (Label1.Top + 25)
            Timer4.Enabled = False
            Timer2.Enabled = True
        Else
            Label1.Move (Label1.Left - 25), (Label1.Top - 25)
            Timer4.Enabled = True
        End If
    End If

End Sub

Do you remember the old game called "Pong"?  With a little work...

Have fun!

Pete

-----Original Message-----
From: Richard Ainsley [mailto:rainsley@p...]
Sent: Tuesday, December 03, 2002 2:29 PM
To: professional vb
Subject: [pro_vb] RE: Label Marquee in VB 6


Rith:

The code posted earlier is NOT Vb6 - it is Access basic.  "Bware" is an
appropriate auther.

-----Original Message-----
From: bwarehouse [mailto:bwarehouse@y...]
Sent: Tuesday, December 03, 2002 6:55 AM
To: professional vb
Subject: [pro_vb] RE: Label Marquee in VB 6

ok. here we go:

docommand.Slide from left to right
docommand.Slide from right to left
docommand.electric slide
AND finally:
DoTHEcommandsYourSelf!nOfReebIeShere
END STATEMENT

later,
bware

-----Original Message-----
From: Williams, Sean [mailto:swilliams@g...]
Sent: Tuesday, December 03, 2002 5:12 AM
To: professional vb
Subject: [pro_vb] RE: Label Marquee in VB 6


Funny,

I am not a Uni Student,   have been playing with VB for about 6 months

And figured a very basic way to do something like this in about 5 minutes..
:)

Would have thought a uni Computer science student should be able to sort
this out...

-----Original Message-----
From: sorith@h... [mailto:sorith@h...]
Sent: Tuesday 3 December 2002 13:08
To: professional vb
Subject: [pro_vb] Label Marquee in VB 6

Hello FriendZ

I am a uni student in computer science. Please help me how to make a label
run like marquee in a form.
- Slide from left to right
- Slide from right to left
- Slide Alternate from left to right then hit the border and return.
Thanks so much for help.

Rith








  Return to Index