Shameless Self-Promotion

Next Thursday (June 21), I’ll be speaking at the Atlanta FoxPro Users Group meeting. I’ll be presenting the “Easy Multithreading with Visual FoxPro” session I did at Southwest Fox 2011.

Since I’ve done the session at Southwest Fox,  Detroit Area Fox Users Group and the Chicago FoxPro Users and Developers Group, I reckon it’s time to “retire” the session from “the road” after Atlanta.

So, in the next couple of weeks I’ll be posting the slides, code and whitepaper for the session.

If you haven’t seen the session, here’s a quick little “promotional” video for it (with tongue planted firmly in cheek).

 

 

Learn Visual FoxPro

Update: The sale has ended. It was valid from March 12 – March 18, 2012.

Hentzenwerke Publishing is having a major sale this week on all of their in-stock printed books.

The sale price each day is good from midnight to midnight, Central time.  If you’re not sure how your local time matches up with Central, you can check it here.

This is a great chance to get your hands on the premier Visual FoxPro books available.

Here’s the price list for the weeklong sale:

Monday, March 12: $10 each
Tuesday, March 13: $11 each
Wednesday, March 14: $12 each
Thursday, March 15: $13 each
Friday, March 16: $14 each
Sat/Sun, March 17-18, $15 each

Visit www.hentzenwerke.com/catalog/zcatalog.htm for details.

Desktop Alerts Tip: Building App-Specific Alert EXE’s

When I first wrote the Desktop Alerts, I pictured a perfect world where everyone had one set of VFP runtimes and the Desktop Alerts would be installed, once, on every computer in the world.

Alas, the world is not perfect. Some apps install VFPALERT.EXE to the app folder, some do not. Some developers add new functionality and recompile the VFPALERT project, some do not. Some recompile it in VFP9SP2, some do not.

To make things easier on yourself and your fellow developers, I recommend compiling your own application-specific version of the Desktop Alerts for each application, and including it (along with ALERT.WAV) with your installer.

Let’s say I’ve written the following three software products, and I want to include Desktop Alerts functionality with all three:

ABC Accounting
BCD Bookkeeper
CDE Customer Manager

On the one hand, I could install the Desktop Alerts to one specific location, and all three products would use that one install.

But, if my customer is using software from another vendor that also uses the Desktop Alerts (and, especially a modified/recompiled version), I may not get the same functionality I expected.

So, since I have three different products, I’m going to create three versions of the Desktop Alerts COM EXE Server, and install each one with its respective product.

MAKE SURE TO SELECT REGENERATE COMPONENT IDs IN THE PROJECT BUILD WINDOW IF YOU ARE DOING THIS!!!

Build Dialog in Visual FoxPro

 

I’ll take the original source code (from the VFPAlert.zip file from VFPX), and compile it three times (with new Component IDs for each one) using the following filenames:

ABCALERT.EXE
BCDALERT.EXE
CDEALERT.EXE

Then I can distribute each one with their respective product.

In the ABC Accounting software, I would use:

oAlertMgr = CREATEOBJECT(“ABCAlert.AlertManager”)

Instead of the usual “VFPAlert.AlertManager”.

This also frees me up to recompile the alerts in VFP8 (if my app is written in VFP8), without having to rely on installing VFP9SP2 runtimes along with my app just to support the alerts.

All I need at this point is to add ABCALERT.EXE and ALERT.WAV to my ABC Accounting app installer (and make sure to run ABCALERT.EXE with the REGSERVER flag during the install) and I have an all-new, app-specific version of Desktop Alerts just for my app – without having to worry about another vendor’s application “taking over” the Desktop Alerts.