Out-of-process components can show both modal and modeless forms. The first use for the CoffeeMonitor will be to demonstrate this, because the results may not be quite what you expect.
The procedure in this topic adds a ShowForm method to the CoffeeMonitor class, plus public constants for use with the method.
Note This topic is part of a series that walks you through creating a sample ActiveX EXE. It begins with the topic Creating an ActiveX EXE Component.
To show forms from the CoffeeMonitor class
Option Explicit
Public Enum cfeModality
cfeModal = vbModal
cfeModeless = vbModeless
End Enum
An enumeration declared Public in a class module is added to your component’s type library. It will not be associated with the class in which it was defined, but will become part of the global name space.
Why would you provide your own constants, when Visual Basic includes vbModal and vbModeless? Your component may be used with a development tool that doesn’t provide these constants. Providing constants compatible with Visual Basic is a flexible solution.
Note Putting the prefix "cfe" in front of the constant names identifies the constants as belonging to the Coffee component, and reduces the chance of name collisions with other components. Some component authors follow the prefix with two or three uppercase letters identifying the Enum; this seems superfluous here. See "Providing Named Constants for Your Component" in "General Principles of Component Design."
A public Sub or Function procedure in a class module defines a method of the class, while a public property procedure defines a property. See "Adding Properties and Methods to Classes," in "General Principles of Component Design."
Public Sub ShowForm(Optional Modality As _
cfeModality = cfeModal)
Dim frm As New TestForm
If Modality = cfeModeless Then
frm.Caption = "TestForm - Modeless"
Else
frm.Caption = "TestForm - Modal"
End If
frm.Show Modality
End Sub
The typed optional argument Modality specifies a Modal form if the argument is omitted. Typed optional arguments are discussed in "Passing Arguments to Procedures" in "Programming Fundamentals" in the Visual Basic Programmer’s Guide.
Because the constants in cfeModality are compatible with the vbModal and vbModeless constants supplied by Visual Basic, you can simply pass the Modality argument to the form’s Show method. The Show method will automatically raise an error if an invalid value is supplied.
The reference executable, which you only need to create once, will help your test application keep its connection to this project. See "Creating a Test Project for an Out-of-Process Component" in "Debugging, Testing, and Deploying Components."
Note If Compile On Demand is checked (on the General tab of the Options dialog box, accessible from the Tools menu), you should use ctrl+f5 (or select Start with Full Compile from the Run menu) to ensure that your component is fully compiled before you begin testing. A compilation error that occurs after the component is providing objects to the test program can be very awkward. Compile On Demand is checked by default.
Important You must put your project in run mode before editing or running the test program, as explained in "Creating a Test Project for an Out-of-Process Component" in "Debugging, Testing, and Deploying Components."
This topic is part of a series that walks you through creating a sample ActiveX EXE.
To | See |
Go to the next step | Creating the CoffeeWatch Test Project |
Start from the beginning | Creating an ActiveX EXE Component |