You are here:
Visual
Basic > VB6
(Beginners Tutorial)
Previous Page |
Table of Contents | Next Page
The Timer, Line, Shape and OLE Controls in Visual Basic 6 (VB6)
The Timer Control
A Timer control is invisible at run time, and its purpose is to send a periodic
pulse to the current application. You can trap this pulse by writing code in the
Timer's Timer event procedure and take advantage of it to execute a task in the
background or to monitor a user's actions. This control exposes only two meaningful
properties: Interval and Enabled. Interval stands for the number of milliseconds
between subsequent pulses (Timer events), while Enabled lets you activate or deactivate
events. When you place the Timer control on a form, its Interval is 0, which means
no events. Therefore, remember to set this property to a suitable value in the
Properties window or in the Form_Load event procedure:
Private Sub Form_Load()
Timer1.Interval = 500 ' Fire two Timer events per second.
End Sub
Timer controls let you write interesting programs with just a few lines of
code. The typical (and abused) example is a digital clock. Just to make things
a bit more compelling, I added flashing colons:
Private Sub Timer1_Timer()
Dim strTime As String
strTime = Time$
If Mid$(lblClock.Caption, 3, 1) = ":" Then
Mid$(strTime, 3, 1)= " "
Mid$(strTime, 6, 1) = " "
End If
lblClock.Caption = strTime
End Sub
You must be careful not to write a lot of code in the Timer event procedure
because this code will be executed at every pulse and therefore can easily degrade
your application's performance. Just as important, never execute a DoEvents statement
inside a Timer event procedure because you might cause the procedure to be reentered,
especially if the Interval property is set to a small value and there's a lot
of code inside the procedure.
Timer controls are often useful for updating status information on a regular
basis. For example, you might want to display on a status bar a short description
of the control that currently has the input focus. You can achieve that by writing
some code in the GotFocus event for all the controls on the form, but when you
have dozens of controls this will require a lot of code (and time). Instead, at
design time load a short description for each control in its Tag property, and
then place a Timer control on the form with an Interval setting of 500. This isn't
a time-critical task, so you can use an even larger value. Finally add two lines
of code to the control's Timer event:
Private Sub Timer1_Timer()
On Error Resume Next
lblStatusBar.Caption = ActiveControl.Tag
End Sub
The Line Control
The Line control is a decorative control whose only purpose is let you draw
one or more straight lines at design time, instead of displaying them using a
Line graphical method at run time. This control exposes a few properties whose
meaning should sound familiar to you by now: BorderColor (the color of the line),
BorderStyle (the same as a form's DrawStyle property), BorderWidth (the same as
a form's DrawWidth property), and DrawMode. While the Line control is handy, remember
that using a Line method at run time is usually better in terms of performance.
The Shape Control
In a sense, the Shape control is an extension of the Line control. It can display
six basic shapes: Rectangle, Square, Oval, Circle, Rounded Rectangle, and Rounded
Square. It supports all the Line control's properties and a few more: BorderStyle
(0-Transparent, 1-Solid), FillColor, and FillStyle (the same as a form's properties
with the same names). The same performance considerations I pointed out for the
Line control apply to the Shape control.
The OLE Control
When OLE first made its appearance, the concept of Object Linking and Embedding
seemed to most developers nothing short of magic. The ability to embed a Microsoft
Word Document or a Microsoft Excel worksheet within another Windows application
seemed an exciting one, and Microsoft promptly released the OLE control—then
called the OLE Container control—to help Visual Basic support this capability.
In the long run, however, the Embedding term in OLE has lost much of its appeal
and importance, and nowadays programmers are more concerned and thrilled about
Automation, a subset of OLE that lets them control other Windows applications
from the outside, manipulating their object hierarchies through OLE. For this
reason, I won't describe the OLE control: It's a rather complex object, and a
thorough description of its many properties, methods, and events (and quirks)
would take too much space.
See Also
Previous Page
| Table of Contents | Next Page
|