All tools in Functional Developer need to know with which project they are associated. A project window is, naturally, always associated with the project it describes. A browser window is associated with the project from which the object it is currently browsing came. A debugger window is associated with the project of the application to which it is connected.
These associations are fairly natural, but the situation for editor windows is slightly more complicated. An editor window can be editing a source file that is part of more than one open project. If we choose Project > Build in the editor window of a source file that appears in two open projects, how does Functional Developer know which project to rebuild?
The answer is that the editor has an active project. This is the project whose name is visible in the drop-down list in the main window. You can change the active project by changing the setting in the list. The active project is always one of the projects that have been explicitly opened--that is, one for which there is a project window.
The editor also uses the active project to determine two other things. First, the editor shows breakpoint information in its leftmost column for source files in the active project only. Second, the Project, Build, and Application menus are disabled in editor windows on source files that are not part of the active project.
A project can become the active project automatically as well as by being set explicitly in the main window's drop-down list. The main window's Options > Environment Options... dialog has two options on the General page controlling when projects become active automatically: "Project becomes active when opened" and "Project becomes active when application started".