Send a suggestion!

We're building a brand new version of the site, and we'd love to hear your ideas

Members

Technology Zones

IBM Learning Center

Articles

Hosted By

MaximumASP

Info

Rated
Read 30,165 times

Related Categories

Declare public constants in a class module

As you may know, Visual Basic doesn't allow public constants in a class
module. This is really too bad, because often you'll find it necessary
to declare constants that you can maintain and transfer along with the
class, but that are also available to the projects that use the class.
Well, the good news is that Visual Basic does provide a way to declare
public constants in a class module. The bad news is that you can only
do so with numeric constants.

However, if that works for you, then consider including a Public Enum
statement in your class. The Enum statement provides for enumeration
of variables. Both variables and parameters can be declared with an
Enum type. To use an Enum, you declare a type and fill it with elements.
If you provide constant values for the elements, then Visual Basic uses
those values. If you don't provide values, then Visual Basic starts
the list at 0 and increments each element's value by one. For instance,
with the following declaration:

Public Enum POPConstants
POP_CONNECT
POP_USER
POP_PASS
POP_STAT
POP_LIST
POP_RETRIEVE
POP_DELETE
POP_QUIT
End Enum

POP_CONNECT would be equal to 0, POP_USER 1, POP_PASS 2, and so on.
However, using the following declaration:

Public Enum POPConstants
POP_CONNECT = 2000
POP_USER = 3
POP_PASS = 10
POP_STAT = 4.5
POP_LIST = 7
POP_RETRIEVE
POP_DELETE
POP_QUIT
End Enum

the constants would equal the indicated values. Those constants without
a value would be one more than the previous variable. So, since POP_LIST
equals 7, POP_RETRIEVE woule be 8.

You can use public Enum constants just as you would any other constants,
like so:

Private Sub Command1_Click()
MsgBox POP_CONNECT & " " & POP_USER
End Sub

There's no need even to instantiate the class, since technically Visual
Basic doesn't consider Public Enum as members of a class, even though
they're written to the type library.

James first started writing tutorials on Visual Basic in 1999 whilst starting this website (then known as VB Web). Since then, the site has grown rapidly, and James has written numerous tutorials, articles and reviews on VB, PHP, ASP and C#. In October 2003, James formed the company Developer Fusion Ltd, which owns this website, and also offers various development services. In his spare time, he's a 3rd year undergraduate studying Computer Science in the UK. He's also a Visual Basic MVP.

Comments

  • Declare public constants in a class module

    Posted by mbala on 27 Aug 2004

    How about having a GlobalMultiUse class module and a general module to implement this functionality :)

    Create a ActiveXDll, add a class to it. Set the instancing property to GlobalMultiUse. Add th...