Using the Object Browser
The Object Browser makes it possible for you to browse, filter, and search for components that you might want to consume in your projects.
To open the Object Browser from the Tools menu, click Object Browser.
You can also open the Object Browser by clicking the Object Browser button on the main Visual FoxPro toolbar, or, type the following line of code in the Command window:
After the Object Browser opens, you can open it programmatically by using the _OBJECTBROWSER system variable.
You can view any COM class type library that is registered on your system. The left pane shows a list of all loaded class type libraries. You can expand each category to display the classes in the library. Members associated with those classes appear in the right pane.
Classes provide complete member information for a particular COM component or ActiveX control that you might want to consume in your application. Instances of these objects typically are created using one of the following Visual FoxPro functions:
ActiveX controls usually are dropped onto a form class directly and are instantiated with the form.
You can drill down into a class to view member detail by selecting the class from the Classes node in the Classes & Members pane. When selected, the properties, methods, and events for that class are displayed in the Members pane on the right. Protected members are shown with a lock icon.
When you click class members in the Members pane, detail information is shown in the Description pane. The contents of the Description pane give details of data types for member parameters and return values. Underlined items in the Description pane are links you can click to go directly to that item for more information. If available, a functional description of the member also will be displayed in the Description pane.
The best way to view properties, methods, and events is to use a particular class in the Members pane. Typically you work with a single class at a time. Sometimes you might wish to view all the properties, methods, and events in a library at one time, not filtered by class. To do this, click the appropriate node in the Classes & Members pane. Depending on the size of the type library, it might take several seconds or minutes to list all the members.
When you click a property, method, or event in the Classes & Members pane, you can view all the classes and interfaces that use it in the Members pane.
When you expand one of the Properties, Methods, or Events nodes in the Classes & Methods pane, it might take a while to display all the contents. Because of this, the Object Browser caches this information in the Objectbrowser.dbf. This saves time when you want to reload a library later. You can click the Refresh button to have properties, methods or events reloaded next time one of these nodes is expanded.
Many type libraries contain constants. A constant is the equivalent of a numeric #DEFINE with which Visual FoxPro developers are familiar. Enums are collections of two or more constants.
Enums are special in that a member can denote a specific enum as the data type for a parameter or return value. For a parameter this means that the value passed for a parameter must be one of the Constants associated with the specified Enum.
You can view the value of a constant by clicking it and viewing the numeric value in the Description pane.
When specifying a constant for a method parameter, you must pass in the actual numeric value. Visual FoxPro does not recognize the actual constant name as a reference as with other languages, such as Visual Basic.
You can create a set of #DEFINE directives that represent all the constants by using drag and drop from the Constants node of a type library to an editor window.
Advanced developers might want to work with specific interfaces in the COM library. Interfaces are particularly useful when you create COM Servers in Visual FoxPro that use the IMPLEMENTS clause of the DEFINE CLASS command. The IMPLEMENTS clause accepts an interface name as a parameter and can be used in association with a variety of COM+ Services as well as the EVENTHANDLER( ) Function.
You can create a class template by using drag and drop from an Interface node to an editor window. This template will contain any IMPLEMENTS statement and member details of the interface.
You can perform searches for text in a library by clicking on the Find button. The Find button displays a unique Find view above the two main panes. The Simple Find view searches for a specified string within all opened libraries. The search is made within all elements of a library and for strings "contained within". The Advanced Find view supports greater refinement of the search.
The Object Browser session is persisted between uses. Object Browser information is saved to an objectbrowser.dbf table stored in the same location as the Object Browser. This information includes the following:
A Recent History list of all previously opened libraries so you can retrieve one of these libraries quickly in the future.
Cached properties, methods, and events for a library so it can be loaded quickly next time accessed.
All previously loaded add-ins.
User preferences specified in the Options dialog box.
COM components and ActiveX controls displayed in the Open dialog box (stored in Foxrefs.dbf).
The first step of the Existing Add-Ins wizard specifies the following options:
Enter a user-friendly name for the add-in as you wish it to appear in the Add-Ins list of the Options dialog box.
Enter a description for the add-in as you want it to appear in the Add-Ins list of the Options dialog box.
Select an icon to display in the Add-Ins list of the Options dialog box (optional).
The second step specifies input for class information of the add-in.
Select the specific class and class library for the add-in class.
The third step is an optional step to provide support information:
You can specify a URL to a Web page that provides additional information for using the add-in. You also can provide specific HTML that appears in the add-in description.
The last step makes it possible for you to finish the add-in installation.
You can specify some advanced options. These include Properties and User Defined Settings.