Wednesday, May 09, 2018

Improvements in Project Explorer

Thanks to many suggestions from the Fox community, I’ve made lots of improvements to the Project Explorer VFPX project since I presented it at Southwest Fox in October 2017 and the German DevCon in November 2017.

Creating new classes and forms

When you click the New button in the toolbar for classes, the New Class dialog appears:


It has similar functionality to that dialog in the Project Manager, with these additional features:

  • Based on is set to the name of the selected class if there is one. This makes it easy to subclass an existing class by simply selecting it and clicking the New button.
  • From is set to the selected VCX but it’s a combobox containing the ten most recently used class libraries, so you can select one from the list. Based on adjusts to display the classes in the selected library. The libraries are listed in most recent to least recent order.
  • You can create a new class by subclassing the Based on class or by copying it (the equivalent of dragging a class from one VCX to another and then renaming it in the Project Manager).

To create a form from a form class, right-click the class and choose Create Form from Class, then specify the name and path of the new form in the file dialog that appears.

Performance improvements

  • At startup, the project was opened and closed multiple times in order to get the version control status of all files. That no longer happens.
  • If only the text equivalents of binary files are stored in the repository, Project Explorer no longer closes the project when committing changes to a file or getting the version control status of a file.
  • Rather than having a single TreeView control that’s constantly emptied and reloaded as you change the selected tag, there’s now one TreeView per tag. Selecting a tag the first time loads and displays that TreeView, including getting the version control status of every file in that tag, and hides the other ones; the next time that tag is selected, the TreeView isn’t reloaded but is simply redisplayed. This makes the performance of switching tags in a large project much faster.

Version control improvements

  • Project Explorer now works properly with Git even when TortoiseGit isn’t installed.
  • Support was added for other “binary to text” converters besides FoxBin2PRG; implementing them is left up to others.
  • You can now change the setting of the Binary Files in Repository setting in the Version Control Properties dialog.
  • The shortcut menu now has Convert Binary to Text and Convert Text to Binary functions. This is handy, for example, if you edit the records in a table for which the text equivalent is stored in the repository.
  • Project Explorer now supports FoxBin2PRG configuration settings better.
  • When version control is turned on for a solution, it now automatically detects if a repository folder exists and only prompts the user if one isn’t found.
  • When dragging a class to another VCX, Project Explorer assigns new UNIQUEID values to the members of the new class. This prevents an issue with duplicate values in FoxBin2PRG.

Other changes

  • The Class Library and Class Name labels in the Servers tab of the project properties are now hyperlinked: clicking them takes you to the VCX or class, respectively.
  • If Solution.xml exists in the current folder, it’s opened automatically rather than prompting the user. Also, if there’s only one PJX file in the current folder and no Solution.xml, Project Explorer automatically opens that project and creates a solution file for it.
  • You can now define both the forecolor and backcolor for categories and specify which color is the Category combobox. Also, the solution is reloaded when you close the Category Editor dialog so changes are displayed immediately.
  • You can now edit the OLEPublic and icon properties of a class in Project Explorer without having to use the Class Designer.
  • The shortcut menu now has a Builder function which invokes the same builder or builder dialog you would see in the Project Manager.
  • The shortcut menu for the User and Description editboxes now has a Zoom function that displays a resizable dialog in which you can view or edit the content of the editbox.
  • Pressing Enter in the TreeView control now acts like double-clicking.
  • If you manually close a project, Project Explorer automatically closes when it’s activated.
  • The Refresh button in the toolbar was replaced with a Sort/Filter button. Refresh is now available in the shortcut menu.
  • Clicking the “…” button in the Sort and Filter and Assign Tags dialogs displays the VFP Expression Builder dialog.
  • Project items now have a CategoryName property so you can filter on that rather than the category’s ID number. Also, the Tags property is now a comma-delimited list of tags instead of a collection for easier filtering.
  • There are a couple of new addins. AddWLCHackCXtoShortcutMenu.prg adds a Run HackCX Professional function to the shortcut menu to launch Hack CX Professional ( EditViewWithViewEditorPro.prg tells Project Explorer to edit a view using White Light Computing’s ViewEditor Professional ( rather than the VFP View Designer.
  • The Run function now works for classes. For non-form classes, the class is instantiated and added to _SCREEN at position 0, 0. For form classes, the class is instantiated and a reference to it added to _SCREEN.
  • Turn on the new Add and New allow any file type setting in the Options dialog to allow the Add and New functions to display a dialog in which you can choose any file type. Turn it off to only allow a file of the selected type to be chosen; for example, if a form is currently selected, Add and New only allow you to add or create a form.
  • Turn on the Remove unused headers setting in the Options dialog to remove headers that don’t have any items under them in the TreeView, such as “Labels” if there aren’t any labels in the project.
  • Project Explorer can now be installed or updated using the Thor Check for Updates function.
  • Running Project Explorer with “do with '?'” displays a help message with the parameters you can pass to it.
  • Numerous bugs were fixed.

Tuesday, May 08, 2018

Presenting Session on Bootstrap

I’m presenting “Creating Beautiful Web Sites Using Bootstrap” this Saturday 2018-05-12 at 10:00 EDT for GRAFUG but anyone’s welcome to attend online: See for the description of the session. Note that this session has been updated to discuss Bootstrap version 4.

Update: a recording of the presentation is available at

Tuesday, May 01, 2018

Southwest Fox 2018 Speakers and Sessions Announced

Speakers and sessions for Southwest Fox 2018 have been announced. We’re excited about first-time speaker James Heuer and having well-known speaker Kevin McNeish back.

Some sessions I’m personally looking forward to seeing are:

Registration opens soon; send an email to if you want us to email you when it’s ready. See you in October!