Controls Overview
Quick! How many controls come with VB? Can you list them? Well, it's not
as easy as you might think. The documentation that comes with VB is a bit
vague on exactly what is available to you. Even worse, I've found multiple
places in the documentation which don't even say the same thing! Finally,
not all that's on the CD-ROM gets installed on your PC, so you can't simply
use the Components dialog box to determine every OCX control that VB has
to offer! Because of that, I've created this part of the tutorial. I
still have a separate section for Intrinsic (built-in) and ActiveX
(separate OCX files) controls.
Introduction
When I was writing the sections on the Intrinsic and ActiveX controls, I
realized that the documentation for the controls was somewhat confusing.
The MS Programmers Guide, the MS Component Tools Guide, and the VB HELP
files weren't consistent in their description of what controls were
available, nor were they clear as to which controls come with the Learning
and Professional editions of VB.
Intrinsic Controls
In the next section of the tutorial, I cover the 20 controls which are
built in to VB. These controls are called intrinsic controls. Every one
of the intrinsic controls are available to every VB program you write. When
you create a "New" VB project, all 20 of the intrinsic controls will show
up in the Toolbox. This is true for all versions of VB.
ActiveX Controls
Microsoft uses this terminology to refer to any control which exists as a
separate file whose extension is OCX. To use an ActiveX control in your
VB program, the control must be registered in the Windows Registry. Usually,
the OCX control installation software handles the registration for you (such
as VB does to register the controls it provides).
If you have a control which has not been registered by other software, you
can register it yourself using the free program provided by Microsoft. The
program, REGSVR32, comes with all version of Windows and is usually found in
the Windows folder. To use it, simply type in:
REGSVR32 control.ocx
where the "control.ocx" is the filename of the control that you want to
register.
IDE and Controls
Here's a key point to remember. Just because you register a control does
not mean that you can use the control in one of your projects.
Registration only assures you that the control can by used by an application
at run-time. Whether or not a control can be used at design-time (within
the IDE) depends on the control.
There are many free controls which can be used freely at design-time.
However, commercial controls require that you install them using a password
before you can use them within your project at design time. If you simply
copy an OCX
to your system and register it with REGSVR32, don't be surprised if you get
an error message when you try to put the OCX on a form!
Intrinsic Control List
The following list shows the 20 intrinsic controls that come with all version
of VB. I have a separate tutorial section to discuss them further:
 | checkbox |  | frame |  | OLE Container
|  | combobox |  | horizontal scrollbar |  | optionbutton
|  | commandbutton |  | vertical scrollbar |  | picturebox
|  | data control |  | image control |  | shape control
|  | dirlistbox |  | label |  | textbox
|  | drivelistbox |  | line |  | timer
|  | filelistbox |  | listbox
|
Beyond the intrinsic controls, what you see and what you can install from
the CDROM depend on which version of VB you've purchased. Not only that,
but VB doesn't automatically install every possible OCX onto your system.
Some OCXs (which can be used in the IDE) can be found on the VB CDROM.
I'll show you where in just a minute!
Learning Edition ActiveX Control List
The next list shows the OCX controls which come with the VB Learning Edition.
I show you which ones get automatically installed, and which ones you must
manually install.
 | Common Dialog | CMDLG32.OCX | automatically installed
|  | DataComboBox | MSDATLST.OCX | automatically installed
|  | DataList | MSDATLST.OCX | automatically installed
|  | MSFlexGrid | MSFLXGRD.OCX | automatically installed
|
Professional Edition ActiveX Control List
These are the OCX controls which come with the VB Professional Edition. I
show you which ones get automatically installed, and which ones you must
manually install. In a later tutorial section I also discuss which controls
are the most useful to programmers.
 | ADO Data Control | MSADODC.OCX | automatically installed
|  | Animation Control | MSCOMCT2.OCX | automatically installed
|  | Communications Control | MSCOMM32.OCX | automatically installed
|  | CoolBar Control | COMCT332.OCX | automatically installed
|  | DataGrid Control | MSDATGRD.OCX | automatically installed
|  | DataRepeater Control | MSDATREP.OCX | automatically installed
|  | DateTimePicker Control | MSCOMCT2.OCX | automatically installed
|  | DBGrid Control | DBGRID32.OCX | automatically installed
|  | DBCombo Control | DBLIST32.OCX | automatically installed
|  | DBList Control | DBLIST32.OCX | automatically installed
|  | FlatScrollBar | MSCOMCT2.OCX | automatically installed
|  | Grid Control | GRID32.OCX | automatically installed
|  | ImageCombo Control | MSCOMCTL.OCX | automatically installed
|  | ImageList Control | MSCOMCTL.OCX | automatically installed
|  | Internet Transfer Control | MSINET.OCX | automatically installed
|  | ListView Control | MSCOMCTL.OCX | automatically installed
|   | MAPI Controls | MSMAPI32.OCX | automatically installed
|  | Masked Edit Control | MSMASK32.OCX | automatically installed
|  | MonthView Control | MSCOMCT2.OCX | automatically installed
|  | MSChart Control | MSCHART.OCX | automatically installed
|  | Multimedia Control | MCI32.OCX | automatically installed
|  | MSHFlexGrid Control | MSHFLXGD.OCX | automatically installed
|  | PictureClip Control | PICCLP32.OCX | automatically installed
|  | ProgressBar Control | MSCOMCTL.OCX | automatically installed
|  | RemoteData Control | MSRDC20.OCX | automatically installed
|  | RichTextBox Control | RICHTX32.OCX | automatically installed
|  | Slider Control | MSCOMCTL.OCX | automatically installed
|  | StatusBar Control | MSCOMCTL.OCX | automatically installed
|  | SysInfo Control | SYSINFO.OCX | automatically installed
|  | SSTab Control | TABCTL32.OCX | automatically installed
|  | TabStrip Control | MCSOMCTL.OCX | automatically installed
|  | Toolbar Control | MSCOMCTL.OCX | automatically installed
|  | TreeView Control | MSCOMCTL.OCX | automatically installed
|  | UpDown Control | MSCOMCT2.OCX | automatically installed
|  | WinSock Control | MSWINSCK.OCX | automatically installed
|
Making Your Own Choices
I've shown you which controls are available but I've yet to tell you
which controls are of any real use to you. You'll find that in applications
you write, you will use a good sprinkling of the intrinsic controls. In my
experience, about 90% of the controls on my forms have come from VB's
intrinsic control list.
Once you select the intrinsic controls you need, you'll add to your project
a few of the ActiveX controls which provide a specific feature you want in
your application. You are very unlikely to have an
application which uses all of the available ActiveX controls. You'll often
find that adding 6-10 ActiveX controls will be the most that any application
requires. If you're like me, you will have 3-4 very versatile controls which
you use a lot, and a very few others which you use on a regular basis.
From the available ActiveX controls, I use the Toolbar, ImageList, and Common
Dialog controls extensively. The Treeview, and Tab Control round off my list
of personal favorites from the ActiveX control list. I probably should make
more use of the Progress bar but most of my applications don't include tasks
which make the user wait long enough to warrant the insertion of a Progress
Bar. Likewise, using the StatusBar would certainly help my programs be more
user-friendly, but I just don't seem to generate the enthusiasm to include
it on my applications.
I also depend on third party OCXs. I find that I use the
Formula One spreadsheet and the Crystal Reports reporting controls very
often. Other than that I have a few specialty OCXs which I use, particularly
in the graphics areas.
|