Visual Basic makes one other important modification to its menus when a project
group is loaded: the addition of the Make Project Group command under the File
menu. This will perform a build of every project contained within the current
project group, which is sometimes more convenient than selecting and building
each project individually. Selecting the Make Project Group option brings up a
dialog box, as shown in Figure 19.5, where you can select which projects you would
like to build.
The option at the bottom of this dialog box, Use Default Build Options, is
very important. If it is selected, Visual Basic will just go ahead and build each
of the selected projects using whatever settings you used last, without displaying
any dialog boxes to enable you to change these build settings.
FIGURE 19.5 The Make Project Group dialog box enables you to select which
projects to build.
If you have never built a project before, and this option is selected, the
system will use the standard defaults shown for a first build (save in current
folder, name is same as project name, and so on). If you do not have this option
checked, the standard build dialog box will come up for each project in turn,
prompting you to either accept or change the current settings. If you are using
the Make Project Group command with the intention of starting all your projects
compiling while you go away and do something else, you should ensure that this
option is checked.
Another important difference when you have multiple projects loaded is that
you need to let Visual Basic know which one is the main, or startup project. This
project is the one that will run when you press F5 or choose Start from the Run
menu. All other projects are only run if they are instantiated by that main project.
A project is considered instantiated by another project if it is started through
some type of ActiveX call, such as CreateObject.
The first project placed in a group is, by default, the startup project, but
this can be changed through the Project Explorer. If you rightclick within any
of the projects in the Project Explorer window, you will see the menu option Set
as Start Up (see Figure 19.6). If you select that option, the project that was
currently selected is now designated the startup project. To indicate its status,
the startup project’s name is shown in bold in the Project Explorer.
FIGURE 19.6 Set this project to be the startup project.
Generally, the choice of which project should be the main project is obvious
to the developer. It is the one that calls or references all the others. It is
sometimes necessary, however, to change the startup project while testing.
Any project that can be run on its own can be a startup project, which means
any type of project other than an ActiveX control (refer back to Figure 19.6).
NOTE - Setting the Startup Project: Always ensure
that your startup project is set correctly when dealing with ActiveX objects.
ActiveX DLLs in particular, when accidentally set to be the startup group, can
cause some puzzling results. Usually, because the DLL probably doesn’t have
any code that runs without a client application calling it, there are no visible
results of starting the project group. You will see Visual Basic remain in Execution
mode (Start button grayed, Pause and Stop buttons enabled), but nothing else will
happen. This might cause you to frantically look for errors in your main project
(the one you intended to be the startup), without finding anything. Remember to
always look for the bold project name as proof of the current startup project.
NOTE - To Which Project Am I Adding? Other than
the previously mentioned options, the Project Explorer behaves the same when dealing
with a project group as it does for a single project. The project affected by
the various Add commands, such as for forms and modules, is always the currently