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
the constants would equal the indicated values. Those constants without
POP_CONNECT = 2000
POP_USER = 3
POP_PASS = 10
POP_STAT = 4.5
POP_LIST = 7
POP_RETRIEVE
POP_DELETE
POP_QUIT
End Enum
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()
There's no need even to instantiate the class, since technically Visual
MsgBox POP_CONNECT & " " & POP_USER
End Sub
Basic doesn't consider Public Enum as members of a class, even though
they're written to the type library.
Declare public constants in a class module
By James Crowley, published on 14 Jul 2001
| Filed in
You might also like...
VB 6 forum discussion
-
CorelDRAW VBA: cdrTraceLineDrawing FAILS, producing single linear path instead of Centerline trace?
by dancemanj (0 replies)
-
client/server application using activex
by beautifulheart (0 replies)
-
System Error &H8007007E. The specifed module could not be found.
by swiftsafe (5 replies)
-
Invitation to take part in an academic research study
by researchlab (0 replies)
-
Send SMS with SMPP
by mmahmoud (0 replies)
VB 6 podcasts
-
Stack Overflow Podcast: Podcast #45 – Keeping it Sharp
Published 7 years ago, running time 0h54m
Our guest this week is Eric Lippert – language architect extraordinaire and famous for all his work at Microsoft in developing their languages Eric joined Microsoft right out of college and was originally working on VB It’s time for everyone’s favorite game: Name the Worst Feature of that Microso.
Comments