User FAQ

Article Index

I want to contribute to the GExperts project. What can I do to help?

See the Readme.txt file, and read through the known bugs and future enhancements section. You can also join the mailing list and make feature suggestions or gather general feedback from there. Generally, it is best to notify the mailing list before you begin work on a major new feature, to prevent multiple people from working on the same task. Also, please only make modifications to the latest source from Subversion to make it easier for us to merge in your changes. The full GExperts Developer FAQ may be of interest to you.

As you code your new expert or feature, try to follow the general formatting, layout, and style of the existing GExperts source code. The best way to learn this is to browse the existing source for a while before you begin coding. The mailing list is always available if you don’t know where to start. There are also some sample expert templates in the SampleExperts directory.

If you are not interested in coding, you can also assist by testing, improving the help files and other documentation, commenting on the user interface, or by donating.

I have multiple IDE versions on my system. How do I install GExperts?

You should download all of the binary versions and install them into separate directories. To share data between multiple GExperts installs, just set the “GExperts storage directory” in the configuration dialog to a shared location.

Where does GExperts store its settings and how to I move them to a new computer?

GExperts stores its settings under the IDE’s registry key. For example, for GExperts 1.3x:

Delphi XE3: HKEY_CURRENT_USER\Software\Embarcadero\BDS\10.0\GExperts-1.3\
Delphi 2009: HKEY_CURRENT_USER\Software\CodeGear\BDS\6.0\GExperts-1.3\
BDS 2006: HKEY_CURRENT_USER\Software\Borland\BDS\4.0\GExperts-1.3\
Delphi 7: HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\GExperts-1.3\
Because of this, you can transport your configuration settings to a new computer by opening regedit.exe, finding the appropriate registry key, exporting the key to a .reg file (using the Registry menu), and then executing the .reg file on the new machine. Data storage files other than configuration settings are stored in the GExperts storage directory you have defined in the GExperts Configuration dialog. This includes data storage for things like Favorite Files, Macro Templates, Code Proofreader, Clipboard History, Macro Library, and Code Librarian snippets. You can freely copy those files to a new computer with the same version of GExperts installed. The data storage files are in a standard XML format, except for the Code Librarian snippets, which are stored in a embedded file system binary file generated by the GPStructuredStorage library.

Why was support for the older Delphi/C++Builder version X dropped?

We understand that many users continue to use older IDE versions, for various reasons. For those users, we continue to make available older versions of GExperts supporting IDEs all of the way back to Delphi 2, even if our current development no longer officially supports those older IDE versions.

The reason for not supporting older IDEs is not a purely technical one, since it is technically possible for us to continue to support all of the way back to at least Delphi 2 but only with a messy and difficult to maintain code-base. Instead, the reasons are more practical ones:

  • We have limited development and testing resources available to us and we can not spread those too thin.
  • Many of the interesting IDE Open Tools interfaces are only available in more recent IDEs
  • Over time, it becomes harder to find Open Tools developers who know how to code for and can test their code in older IDEs.
  • Supporting older IDEs makes it harder to to take advantage of new IDE and RTL/VCL features.
  • Supporting fewer IDEs results in a cleaner code base with fewer version-specific IFDEFs, conditional branches, and IDE bug workarounds.
  • Most users seem to prefer that we focus our energy on supporting new IDE releases as soon as they are available.

We welcome anyone who wants to join our mailing list and offer to continue to test and maintain support for older IDE versions. We can even help support such development by allowing you to maintain a branch in our SVN source repository where you can more easily track and apply the changes from the main SVN trunk line of code.

Do I have to uninstall old GExperts versions before installing a new one? Will I lose my settings when I upgrade to a new GExperts release?

You should always backup and uninstall an older release before installing a new one. You can not have two versions of GExperts loaded into the same IDE.

If you are upgrading to a new minor update (such as from GExperts 1.30 to 1.31), you have the ability to preserve all of your preferences and data files. To do this, answer No if the uninstaller asks if you want to delete your preferences and data files and then just install GExperts into the same directory as before. If you are upgrading to a new major release (such as from GExperts 1.2x to 1.3x or 1.x to 2.x) your preferences stored in the registry will not be compatible, since they are stored in a different location and often in different formats (see below). Your GExperts data files (the .xml and .fs files stored in the storage directory defined in the GExperts configuration dialog) are generally compatible when moving from GExperts 1.2 to 1.3 for example. To use those in a later release, copy them to your GExperts 1.3 storage directory. If your data files from an earlier release are incompatible, see the download area for some conversion utilities.

I’ve experienced crashes or access violations that I think are due to GExperts. How do I investigate or report this?

First see the known bugs section of the Readme to see if you have found a known problem. If it isn’t there, be sure you are using the latest stable version of GExperts. If you still want to investigate the cause of the problem, you need to debug a GExperts DLL:

  1. Obtain the latest GExperts source code.
  2. Remove any registry entries which load GExperts DLLs into your IDE. Look in HKEY_CURRENT_USER\Software\Embarcadero\BDS\8.0 for Delphi/RAD Studio XE1, for example.
  3. Start your IDE, and verify GExperts is not loaded.
  4. Read SourceCode.txt for instructions to compile the GExperts DLL. Be sure to turn on debug information, stack frames, reference info, and assertions. Turn optimization off.
  5. Install the compiled DLL into your IDE manually using the instructions in Readme.txt (again HKEY_CURRENT_USER\Software\Embarcadero\BDS\8.0, or similar).
  6. Select Run, Parameters from the IDE menu. Enter the IDE’s executable (Bin\bds.exe, Bin\Delphi32.exe, etc.) as the host application.
  7. Set breakpoints as appropriate in the GExperts source files. You can break in TGExperts.Create, if you don’t know where to begin.
  8. Run the host application (F9), and another copy of the IDE should appear with GExperts loaded.
  9. You can now debug the GExperts DLL as it was a normal program (watches, breakpoints, inspections, tooltip evaluation, etc.).

If you do not have the time or energy to debug the DLL and find the problem, please attempt as much of the following as possible:

Determine step-by-step instructions for duplicating the problem and the text of the error message, if any. Note the exact version of the IDE and the exact GExperts version. Attempt to duplicate the problem with the default (empty) project loaded or no project loaded. Test the problem with all other experts disabled. Duplicate the problem with all third party packages unloaded. Note what windows you had open, the active one, and what actions you had performed before seeing the error. Send a full description of the test results from above and the problem to the mailing list or using the Feedback Wizard in the about box.

What parts of GExperts work with C++ and C# code?

See the “C++ and C# Compatibility” section of the GExperts help file for details. For older releases, look at the BCBNotes.txt file for C++ support details.

How do I recompile the GExperts source code?

See SourceCode.txt for complete instructions. If you have problems not explained there, join and then consult the discussion mailing list. Also, see the Developer FAQ.

Is there any chance of a GExperts for JBuilder/Visual Studio/etc.?

This is not likely, since it would require a nearly complete rewrite to support integration with other IDEs.

Is Kylix 3 support available?

Support for Kylix is not available. Our source code once had limited support for Kylix, so you might be able to download it and get it working, but the limitations and stability of the Kylix Open Tools/IDE are issues and the time necessary to test the features under Linux is another issue. That said, you are welcome to download the latest source from SVN and see if you can continue testing and converting GExperts to be compatible.

Will you add a source code formatter to GExperts?

There is some preliminary work available as an unofficial GExperts build that is derived from the defunct DelForExp project, but the code is not complete enough to be included in GExperts. There is also the free Jedi Code Formatter which supports more of the recent language features. It is becoming more unlikely that we’ll officially include a source code formatter, now that RAD Studio 2010 already includes a formatter.

Will you add a tool to GExperts that removes unnecessary uses clause entries?

Removing “unused” uses clause entries may seem like a simple task, but the feature is actually fairly complex and possibly dangerous to implement. Even if a unit does not make use of classes/functions in a given used unit, the initialization and finalization sections in used units are sometimes performing necessary work. If we were to ignore initialization and finalization sections, we would still need to implement the initial stages of a compiler up to the point of creating a full symbol table to determine what unit given identifiers map to, or develop units to parse the undocumented and ever-changing DCU file format. We would welcome any code contributions toward this feature, but we don’t have any plans to implement ourselves it right now. You might instead try the tools from Peganza.

How can I share a Code Librarian database over the network?

Recent GExperts versions can not share this database over the network. The GExperts 1.1 ClientDataSet (CodeDB.cds) database can be shared over a network only if you set the file to be read-only. GExperts 1.0 and earlier store its data in a Paradox database. Sharing of Paradox databases is governed by your BDE configuration. The configuration setting is under BDE Administrator, Configuration, Drivers, Native, PARADOX, and is called “NET DIR”. Set this to a shared network directory location. See the BDE help file for full details.

I get an unknown property error when loading GExperts or a GExperts form.

If you installed using an official GExperts installer, please notify us. If you are compiling from the source code, see the notes in SourceCode.txt for help.

FAQ for IDEs Before Delphi 6 and GExperts Releases Before 1.30

First, try upgrading to the latest GExperts 1.3+ release, where this should be fixed. The new Delphi menu system does not support menu columns/breaks or scrolling when the number of menu items grows larger than the usable screen height. For the main GExperts menu, one solution is to choose the GExperts Configuration menu item (above “About…”) and disable enough GExperts experts for the menu to fit onscreen again. For the component tab popup, you can disable enough component packages to make the menu fit onscreen. Another alternative is to increase your screen resolution.

Where can I get the Delphi 3.01/3.02 update required for GExperts?

GExperts can not support Delphi 3.00-3.02 with the same binary file, because Borland made incompatible changes to a package between releases. You can look for a Borland download page or try to locate their old FTP site, but I don’t think they offer the 3.01 update anymore, so you may need to locate a friend with the 3.01 update CD. If you have 3.01 already, the 3.02 patches are probably available somewhere to download. If you still can not find the update you need, you will need to compile GExperts yourself from a compatible release of the source code.

Why can’t I use GExperts in a commercial environment?

You’ve likely misread the GExperts license. The restriction on usage in commercial or proprietary products only applies to using the GExperts source code, not GExperts binary distributions.

Why isn’t the Standard/Personal version of my IDE fully supported?

For GExperts 1.1 and earlier, the standard/personal editions of Delphi 5+ and C++Builder 5+ do not have database support, which is required for parts of GExperts. DLLs without the database experts (Code Librarian and Code Proofreader) included are available on the download page. Starting with GExperts 1.2, GExperts no longer uses any VCL database code, and all features should work in those IDEs.

Will you please add method folding and other custom painting to the IDE’s code editor?

The functionality necessary to hide code lines is not surfaced by the Borland Open Tools API, and it would be unsafe and extremely complicated to implement without help from the IDE. Custom painting in the code editor isn’t supported by the OTA either, so it requires low level hacking (windows hooks, runtime VMT patching, etc.) that is fairly error-prone and can slow down editing actions considerably, so as of yet nobody on the GExperts team has looked into this. Feel free to send us code contributions toward these features, but since code folding is present in Delphi 8 and greater, that feature is probably not worth implementing at this point.

How can I prevent errors about missing DLLs and entry points when starting the IDE?

If you get errors that mention “ComCtls.GetComCtlVersion@C43AB84F could not be located”, “@Controls@TSizeConstraints@SetConstraints$qqrii could not be located”, or “can’t find wizard,’GExpertX.dll'” then you are probably running under an older version of your IDE. Please upgrade to Delphi 3.02, Delphi 4.03, Delphi 5.01, or Delphi 6.01.

For example, to check if you are running Delphi 3.02, look at the date/time of the VCL30.dpl file in your system directory:

10/23/97  03:02a             1,287,088 vcl30.dpl

Also, all successful 3.02 patch installs have a readme302.txt file in the root Delphi 3 directory.

Can I get GExperts for Delphi 1 or Delphi 2? What about C++Builder 1 and 3?

An old and totally unsupported version of GExperts is available for Delphi 2. GExperts will likely never will be available for Delphi 1 or C++Builder 1. C++Builder 3 might work, but you must recompile from the old source code yourself.

Is GExperts compatible with CodeRush?

CodeRush and GExperts work together fairly well under Delphi 4+. They partially work together under Delphi 3, but this isn’t recommended. Under Delphi 3, you will have the best luck if you disable the editor experts, editor enhancements, and IDE enhancements.

Why don’t most of the Project Option Sets settings work?

Many of the project options settings are surfaced by the IDE’s Open Tools interface, but they are not hooked to any code that allows experts to get and set the values. Most of these issues are fixed in Delphi 5.01 and C++Builder 5, but not all of them. If you notice some options that have no effect when you apply a project option set, you are likely experiencing this IDE bug, so please upgrade. Settings that apparently do not work in Delphi 5.00 include Assertions, GenConsoleApp LocalSymbols, IOChecks, LongStrings, Optimization, OverflowChecks, RangeChecks, StackFrames, UnitDebugInfo, UnitAliases, TypedAddress, SafeDivide, LibPath, LibraryList, ReferenceInfo, PentiumFloat, LinkDebugVcl, ExtendedSyntax, DebugPath, BoolEval, etc.

Last Updated on Monday, 05 October 2009 10:36