Wiki Home

Fox RockX TOC


Namespace: WIN_COM_API


TOC May 2014 - Number 38


Deep Dive: Unit Testing Visual FoxPro Applications, Part 3
Doug Hennig
In the previous two articles in this series, I discussed what unit testing is and why it’s important. I created some simple unit tests to show how they work and then introduced the Fox Unit unit testing framework and discussed how it makes creating and running unit tests a lot easier. In this, the last article in this series, we’ll look at how to simplify unit testing using mock objects and wind up with some final thoughts on unit testing.

VFPX: ExcelXML
Rick Schummer
In the last issue of Fox RockX we discussed how Microsoft Excel is the centerpiece of Microsoft Office with respect to analyzing data in the corporate world, large and small businesses alike and how FoxyXLS is a terrific way to create Excel files without having Excel installed. ExcelXML is another such tool from VFPX to help Visual FoxPro developers create Excel files, but takes a different approach using the XML format Excel can open as a spreadsheet. ExcelXML also creates the output to mimic the look and feel of your Visual FoxPro grid found on a form in your application.

Know How: Getting the Top N for each Group
Tamar E. Granor, Ph.D.
In my previous articles in this series, I’ve explored several features in SQL Server that don’t have analogues in VFP. These features make it much ­easier to solve certain problems. This article introduces another such feature that simplifies another common problem.

Future: Integrating Visual FoxPro and MailChimp
Whil Hentzen
We've all written our own email applications. I finally decided to use an outside service to handle my emailing needs. Here's how I used VFP to integrate with the mailing service.


TOC March 2014 - Number 37


Deep Dive: Unit Testing Visual FoxPro Applications, Part 2
Doug Hennig
In the previous issue, I discussed what unit testing is and why it’s important, and created some simple unit tests to show how they work. In this article, I’ll introduce the Fox Unit unit testing framework and discuss how it makes creating and running unit tests a lot easier.

VFPX: FoxyXLS
Rick Schummer
Microsoft Excel is the centerpiece of Microsoft Office with respect to analyzing data in the corporate world, large and small businesses alike. So naturally applications written for these organizations are going to export data to Excel files so users can graph and analyze the data to their needs. There are many ways Visual FoxPro applications can work with Excel including exporting to XLS files directly or through automation code. But there are situations where the customer does not want to ­license Excel for the application use or more likely, Microsoft might not allow licensing of Excel in certain situations. FoxyXLS is one project from VFPX to help Visual FoxPro developers with the creation of Excel files.

Know How: Handling hierarchical data
Tamar E. Granor, Ph.D.
In my last article, I showed how SQL Server makes combining data into a single field much easier than in VFP. This time, I’ll show how handling hierarchical data that doesn’t fit the standard parent-child-grandchild model is easier in SQL Server.

Future: Data Munging with Python, Part 2/2
Whil Hentzen
Last issue, I introduced Python and showed you how to create and run the traditional Hello World script in several environments. This month, we're going to start building scripts that handle files.

Future: Data Munging with Python, Part 3
Whil Hentzen
Last issue, I showed you how to build scripts that handled text files in a variety of ways. Being able to manipulate them is in and of itself not very useful unless you're doing basic statistical gathering. This time around, we're going to write the results of our manipulations back to disk, creating both text files as well as .DBFs.


TOC January 2014 - Number 36


Deep Dive: Unit Testing Visual FoxPro Applications, Part 1
Doug Hennig
Unit testing is a very important part of application development and yet it seems that few VFP developers use this important technique. Unit testing allows you to confirm that code has the functionality expected of it, and is especially important when refactoring or making other changes to your code. This three-part series introduces you to unit testing and the VFX Fox Unit project so you can be confident in your application’s success before you deploy it.

VFPX: Thor’s Finder
Rick Schummer
Finding files is something developers find themselves doing from time-to-time. You can search using Windows Explorer and hope the Windows file index locates for the elusive source code file name. What happens when you find the file in Windows Explorer and double-click it? It opens the file in a new instance of Visual FoxPro, not the current one you are using with the project open. Wouldn’t it be nice if the file opened in the editor in the same instance? What happens when you are looking for a class name inside a VCX-based class library? This month Rick explains how Thor’s new Finder tool from Jim Nelson helps you, and has developed into a potential replacement for the Visual FoxPro Project Manager.

Know How: Consolidate data from a field into a list
Tamar E. Granor, Ph.D.
Some SQL commands were added to FoxPro 2.0 and I fell in love with them as soon as I started playing around. Over the years, Visual FoxPro’s SQL subset has grown, but there are still some tasks that are hard or impossible to do in VFP, but a lot easier in other SQL dialects. In this series of articles, I’ll take a look at some of these tasks, showing you how VFP requires a blend of SQL and Xbase code, but SQL Server allows them to be done with SQL code only.

Future: Data Munging with Python, Part 2/1
Whil Hentzen
Last issue, I introduced Python and showed you how to create and run the traditional Hello World script in several environments. This month, we're going to start building scripts that handle files.


TOC November 2013 - Number 35


Deep Dive: Introduction to C# for VFP Developers, Part 5
Doug Hennig
This article is the last in a five-part series on the C# language.

VFP: Ideal for Tools, Part 3
Tamar E. Granor, Ph.D.
The first two parts of this series looked at Visual FoxPro language elements for exploring data, and for working with classes and forms. This article looks at parts of VFP that let you work with programs and projects.

Basics: A Bevy of Timers
Whil Hentzen
In this article, I'll explore several ways to have VFP time out an application as well as to time out a single form.

Future: Data Munging with Python, Part 1
Whil Hentzen
In a previous article, I discussed the situation where an incoming data file exceeded VFP's 2 GB/.DBF ­capacity. We used SQLite to import a multi-gigabyte table. In this article, I'll introduce another tool that should be in your toolkit, and in subsequent articles, show you how to attack this type of problem.


TOC September 2013 - Number 34


Deep Dive: Introduction to C# for VFP Developers, Part 4
Doug Hennig
This article is the fourth in a five-part series on the C# language.

VFP: Ideal for Tools, Part 2
Tamar E. Granor, Ph.D.
In my last article, I wrote about VFP language elements related to data that are useful for building developer tools. This time, I’ll focus on language related to classes and forms.

VFPX: Foxy Previewer
Rick Schummer
The VFP 9 Report Writer preview screen was vastly improved in VFP 9, yet today there is an open source project called the Foxy Previewer that ­improves upon it in many ways. In this article Rick addresses the advantages of the open source replacement and the functionality included that you do not get with the core VFP technology when previewing reports on the screen.


TOC July 2013 - Number 33


Deep Dive: Introduction to C# for VFP Developers, Part 3
Doug Hennig
This article is the third in a five-part series on the C# language.

Case Study: Using SQLite to break the 2GB Barrier
Whil Hentzen
In previous articles, I've helped you dip your toe into the SQLite pool, in preparation for using it as an application backend. In this article, I'm going to take a different direction and show you how I used SQLite to help a customer deal with an external data source that, in its latest release, had become too big to import into a VFP table.

VFP: Ideal for Tools, Part 1
Tamar E. Granor, Ph.D.
In my last few articles, I focused on Thor, a VFPX tool for managing developer tools. Thor and VFPX generally are part of a long history of developer tools for FoxPro written in FoxPro. In this series of articles, I’ll look at the language elements that enable writing developer tools.

VFP: Application Updater
Rick Schummer
Most modern applications come with a way to check if there is a newer version available and for it to optionally download and install the update. Writing code to do this is not all that complex, but if you are looking for something that is both powerful and flexible, and already written and tested, you can check out Craig Boyd’s App Updater tool. This month Rick explains how this tool works and what it takes to incorporate it into your application and the user’s environment so you look like a hero.


TOC May 2013 - Number 32


Deep Dive: Introduction to C# for VFP Developers, Part 2
Doug Hennig
This article is the second in a five-part series on the C# language.

Know How: Give Thor Tools Options
Tamar E. Granor, Ph.D.
In my last article, I showed how to add your own tools to Thor. This time, I look at how you can provide options for Thor Tools, so that users can customize them.

VFPX: Dynamic Forms
Rick Schummer
How many times in your career have you created a form as a one-time display of some details, collect some criteria, or message your users? How many times have you “cheated” and used the INPUTBOX() function to prompt the user to enter in some information to conditionally control the remaining code in the program because a full-fledged form seemed like overkill? This is a perfect situation for the new Dynamic Forms project available on VFPX.

Basics: Setting up VFP 9
Whil Hentzen
Inertia is a powerful thing. I regularly hear from ­developers who haven't gotten around to upgrading to VFP 9, or haven't kept their VFP 9 installation up to date. Given that all the activity from Microsoft in the last 5 ot 6 years has come in the form streamed updates, it can be time-consuming as well as confusing to figure out how to get VFP 9 set up in tip-top shape. This article will provide a quick cookbook to get your copy of VFP up to date.


TOC March 2013 - Number 31


Deep Dive: Introduction to C# for VFP Developers, Part 1
Doug Hennig
Even if you're planning to continue development in VFP, learning another language like C# can be very useful. There are some things that are a lot easier and faster to do in .Net than in VFP (the reverse is also true). This article, the first in a five-part series, introduces the C# language, comparing it to constructs and syntax in VFP to shorten the learning curve.

Know How: Make Thor Your Own
Tamar E. Granor, Ph.D.
In my last two articles, I wrote about some of the tools that come with the VFPX project, Thor. This month, I show you how to add existing tools to Thor, and how to take advantage of the code that‘s included with Thor.

Future: The Business Case for Moving *Some* Applications to VFP in 2013, Part 2
Whil Hentzen
In the fall of 2012, I wrote a 4 page article outlining the business case for VFP in 2013, dispelling a few myths that are commonly trotted out when VFP is brought up, and reinforcing several benefits that we take for granted, but that others aren't aware of, have forgotten, or dismiss until they're explained. The response to that article was overwhelmingly good, and I've received many requests for more details. Since then, I've fleshed the business case to a in-depth 20 page discussion of the pros and cons of using Visual FoxPro in 2013 and beyond.

VFPX: FoxBarcodeQR
Rick Schummer
In the May 2012 issue of Fox RockX, Rick’s VFPX column focused on the Fox Barcode project. This month he expands it to a next dimension with coverage of the FoxBarCodeQR project. QR barcodes are two-dimensional, and just like barcode creation with Fox Barcode, very easy to use.


TOC January 2013 - Number 30


Deep Dive: Call .NET Code from VFP the Easy Way
Doug Hennig
Calling .NET components from VFP applications can be tricky or even impossible. A new open source project from Rick Strahl named wwDotNetBridge makes this easy.

Know How: Try Thor’s Terrific Tools, Part 2
Tamar E. Granor, Ph.D.
In my last article, I showed a few of the tools that are included with Thor. This time, I’ll look at some more of them, including a number that simplify refactoring.

Deep Dive: Another Boring Article About Regular Expressions
Whil Hentzen
Regular expressions might be that tool that will allow you to fit 36 hours of work into a 24 hour day some time. So bear with me; in this article, I'll explain why you MIGHT want to have the ability to use regular expressions in your toolkit, and how to get started.

Future: The Business Case for Moving *Some* Applications to VFP in 2013, Part 1
Whil Hentzen
In the fall of 2012, I wrote a 4 page article outlining the business case for VFP in 2013, dispelling a few myths that are commonly trotted out when VFP is brought up, and reinforcing several benefits that we take for granted, but that others aren't aware of, have forgotten, or dismiss until they're explained. The response to that article was overwhelmingly good, and I've received many requests for more details. Since then, I've fleshed the business case to a in-depth 20 page discussion of the pros and cons of using Visual FoxPro in 2013 and beyond.


TOC November 2012 - Number 29


Know How: Try Thor’s Terrific Tools, Part 1
Tamar E. Granor, Ph.D.
Thor provides dozens of great tools to make developing in VFP easier. In this series, Tamar takes a look at her favorites.

Deep Dive: Creating ActiveX Controls for VFP using .Net, Part 4
Doug Hennig
Doug concludes his series on creating ActiveX controls using .Net by looking at another way to create ActiveX controls and how to deploy them to your user’s system.

VFPX: Intellisense X
Rick Schummer
IntelliSense was introduced in Visual FoxPro 7. Many developers have extended it by creating scripts that are stored in the FoxCode.DBF table. Christof Wollenhaupt (with the help of many others) created a tool named ISX to extend IntelliSense without modification to the FoxCode table. Jim Nelson extends this excellent public domain utility, makes some of his own enhancements, and integrates it into Thor on VFPX.

SQLite: Vive La Difference – How SQLite varies from VFP SQL
Whil Hentzen
In this article, I'll alert you to some of the differences between SQLite and VFP's SQL implementation.


TOC September 2012 - Number 28


Editorial: The Business Case for Upgrading Apps to Visual FoxPro in 2013
Whil Hentzen
So 2013 is getting ready to stare us in the face, and it seems every week we're getting calls from customers who have FoxPro 1.x, 2.x or Visual FoxPro applications in production, wondering what to do with them. These customers have thousands, perhaps tens of thousands of hours invested in their applications, systems that in some cases run their entire company, but they're looking at potential problems as Windows goes through its 5th or 6th new release since their application was initially written.

Know How: Using Assign methods
Tamar E. Granor, Ph.D.
In my last article, I introduced Access and Assign methods and showed some examples of Access methods. This time, I’ll explore Assign methods, which fire when the corresponding property changes, essentially giving you a "property changed" event.

Deep Dive: Creating ActiveX Controls for VFP using .Net, Part 3
Doug Hennig
Doug continues his series on creating ActiveX controls using .Net by adding additional classes to the library of controls he’s been building.

VFPX: Data Explorer 3
Rick Schummer
The release of Visual FoxPro 9 introduced a new Xbase tool called the Data Explorer. Microsoft released a new version in the Sedna release to correct the known bugs and introduce a handful of new features. This article explores some of the newest features added to the Data Explorer past the Sedna release and released on VFPX in a project known as Data Explorer 3.

New Ways: OS Based Invisible Data Compression in VFP
Pradip Acharya
Data compression with external zipping utilities in VFP applications has been featured in more than one article in this forum over the past quarter century. XP onward, Windows has offered OS managed, behind the scene compression of data in folders and files via a single FILE_ATTRIBUTE control bit.


TOC July 2012 - Number 27


Editorial: Learn, Network, Be inspired
Rick Schummer
This editorial is for those who have not attended a conference, and for the leadership who consider sending people to conferences. My hope is that by the end of this article, you will commit to register yourself and/or the people who work for you for a conference each year.

Know How: Put Access methods to work
Tamar E. Granor, Ph.D.
In my last two articles, I demonstrated BINDEVENT(), the VFP function that lets you set up a method to respond when an event fires. In this article and the next, I'll take a look at Access and Assign methods, another VFP approach to provide automatic behavior.

Deep Dive: Creating ActiveX Controls for VFP using .Net, Part 2
Doug Hennig
Last issue, Doug showed how to create ActiveX controls from .Net components so we can take advantage of these controls without having to convert our applications to .Net. This month, he continues the discussion to show how to handle events.

SQLite: Inserting Large Amounts of Data into SQLite
Whil Hentzen
In this article, I'll show you how to work with SQLite directly in order to quickly insert large amounts of data into a SQLite database, and then how to export data from SQLite into other data file formats.

VFPX: VFP 9 SP2 Help File
Rick Schummer
Microsoft released two different Help files for VFP 9 Service Pack 2 (SP2) and both were flawed and considered unusable. I am not sure exactly what happened or how it transpired, but the cold hard fact is no one checked the final Help file Microsoft released during an update of VFP 9 SP2. Fortunately several people in the Fox Community took it upon themselves to attempt to fix it, but only Francis Faure was able to reassemble all the missing pieces and put it all together again. Microsoft Legal gave the final blessing and released it to the Fox Community on VFPX using a Creative Commons license.

Silverlight: Creating Dependency Properties and Understanding DP-concepts
Patrick Schärer
Anyone who has done some Silverlight or WPF has stumbled over the term “Dependency Property” and if he has done some research on it, he has probably found out that nearly all properties of visual ­objects shaped through XAML code are Dependency Properties, and that for them to work the containing object (such as UserControl or Window) must inherit from DependencyObject. He also might have discovered that this is the mechanism used to allow properties to depend on (or be determined by) the typical XAML-like mechanisms like styles, animations and Xaml-Bindings.

Tips & Tricks: Cool tool for reporting problems
Tamar E. Granor, Ph.D.
Windows 7 introduced a cool tool that can help you understand your customer’s bug reports.


TOC May 2012 - Number 26


Know How: Put Event Binding to Work, Part 2
Tamar E. Granor, Ph.D.
In my last article, I gave an overview of the BINDEVENT() function and showed some of the ways I use it to improve my applications. In this article, we'll see some additional examples, including one that binds to a Windows event.

Deep Dive: Creating ActiveX Controls for VFP using .Net, Part 1
Doug Hennig
ActiveX controls provide a way to add both functionality and a modern appearance to your VFP applications. Unfortunately, there are few new ActiveX controls these days. On the other hand, the .Net framework comes with many attractive looking controls, and there’s an entire industry devoted to providing even more. This is the first in a series of articles discussing techniques for creating ActiveX controls from .Net components so we can take advantage of these controls without having to convert our applications to .Net.

SQLite: SQLite Connection: Error Handling and Verification
Whil Hentzen
“We need to get away from DBFs” is a refrain I hear regularly from fellow developers. Be it due to perceived instability of the file format, the need for tables larger than 2 GB, or the result of political machinations, the result is the same – a desire to move to a SQL database back-end. SQLite can be an excellent intermediate step – and possibly the final word - in the process of restructuring your application to talk to a SQL back-end. In this article, I discuss how to deal with the usual spate of errors that can occur when connecting to SQLite from VFP, and then how to verify that the connection actually is working.

VFPX: Fox Barcode
Rick Schummer
Barcoding data has been around for decades, and has become simpler over time. Yet developers struggle when they are first approached to include barcodes in their applications. The challenges include finding the appropriate barcode fonts, finding compatible ActiveX controls, and getting barcode readers to read the generated barcodes. This month, in our ongoing series on VFPX, Rick covers how barcoding is simplified for Visual FoxPro developers using Fox Barcode.


TOC March 2012 - Number 25


Know How: Put Event Binding to Work, Part 1
Tamar E. Granor, Ph.D.
At fi rst glance, the BINDEVENT() function may seem unnecessary. After all, why bind to an event when you can just write code in the event's method?

Deep Dive: Make Your Menus Pop
Doug Hennig
Last issue, Doug discussed ctl32_ContextMenu, an object-oriented menu class that’s part of the ctl32 library. This month, he looks at another OOP menu class, this time the VFPX PopMenu project.

VFPX: Go Fish 4
Rick Schummer
Go Fish is a tool originally released in March 2001 by Peter Diotte and resurrected by Matt Slay in 2010. Go Fish revolutionizes search performance and gives Visual FoxPro developers a solid source code search and replace process. If you are a fan of Microsoft’s Code References tool or the enhanced VFPX version you certainly should take a look at the new and improved Go Fish. This month Rick shows you how this tool surpasses Code References in so many ways and points out a couple of the features where it is still a step behind.

SQLite: Getting started with Client - Server with SQLite
Whil Hentzen
“We need to get away from DBFs” is a refrain I hear regularly from fellow developers. Be it due to perceived instability of the file format, the need for tables larger than 2 GB, or the result of political machinations, the result is the same – a desire to move to a SQL database back-end. SQLite can be an excellent intermediate step – and possibly the final word - in the process of restructuring your application to talk to a SQL back-end.


TOC January 2012 - Number 24


New Ways: Managing Properties as Virtual Table Fields
Pradip Acharya
In a distributed multi user application with a central shared database, it’s not easy to add new fields to a table or modify table structures at will. This may not even be practical. For example, when the Product table must support inventory for a several Business Models, there may be thousands of individual Product properties.

Deep Dive: The ctl32 Library, Part 3
Doug Hennig
Carlos Alloatti has created an incredible library of controls you can use to give your applications a more modern interface. Doug finishes his look at the library with the last set of controls.

Know How: Speed Up Your SQL Code
Tamar E. Granor, Ph.D.
In my last article, I talked about the two functionsin VFP that allow you to measure the optimization of SQL commands. This month, I’ll look at what you can do to improve performance once you know that a query is sub-optimal.

VFPX: Parallel Fox
Rick Schummer
Parallel processing is defined as the performance by a computer of two or more simultaneous operations divided among multiple processors. Parallel programming is spawning processes on two separate processors either on different computers or the same computer. This is becoming more and more important based on the engineering fact it is getting harder to get silicone-based processors to run faster with the reliability and stability we expect and require. So how do Visual FoxPro developers take advantage of this approach? Well thanks to Joel Leach and the Parallel Fox project on VFPX, it actually is quite straightforward.


TOC November 2011 - Number 23


New Ways: Foxparse C Library for Handling Strings, Properties and Windows
Pradip Acharya
A limited version of the Foxparse.fll C library was introduced in an earlier recent issue. This issue covers the full version featuring the complete set of advanced functions. The C API was created to expand the limited choices for string handling, formatting and parsing offered by VFP9.


TOC September 2011 - Number 22


Editorial: Totally Marshmallowed? Join us at SWFox DevCon for a refresher!
Rainer Becker
You should not miss the SWFox DevCon. It covers a lot of great topics, treated by great speakers! But maybe economics are harsh again in your region and maybe there is a problem with the funding – concerning not only the money to spend, but also the time? Time of not being available at your desk for the perennially urgent development work, support and maintenance tasks?. Here come a few more reasons why you should circumnavigate all these obstacles somehow or why your boss should be won over, too.

Deep Dive: The ctl32 Library, Part 2
Doug Hennig
Carlos Alloatti has created an incredible library of controls you can use to give your applications amore modern interface. Doug continues his look at the library withthe next set of controls.

Know How: Make Your Queries Fly
Tamar E. Granor, Ph.D.
In the January, 2010 issue, I wrote about changes in VFP's SQL commands in VFP 8 and 9. But one of the key elements in using SQL commands is that they can be very fast. When they're not, you need to figure out why. Fortunately, VFP includes a couple of functions that help you do so.

VFPX: Thor Adding Tools
Rick Schummer
Thor is designed to be the ultimate IDE extension and tool manager and is quickly maturing on VFPX. Last issue Rick briefly introduced you to the installation process and provided a brief overview of Thor’s user interface. This month Rick dives in to the core reason this tool was created in the first place by detailing how you can use Thor to manage various add-ons and tools you want integrated into the Visual FoxPro 9 IDE.

Tips & Tricks: Schummer Tips and Tricks
Rick Schummer
ActiveX/IntelliSense tip Dragging the ActiveX controls from the Visual FoxPro Toolbox to an editor provides the syntax for CREATEOBJECT() code. The following code was created when I dropped the Adobe PDF Reader ActiveX Control in the program editor:

Tips & Tricks: Report Writer
Cathy Knight
The VFP Report Writer has some very useful features hidden away. The first hidden feature is very helpful for concatenating data in a single field object on a report. The second hidden feature is helpful for browsing or hacking the FRX.

Internationalization: Internationalize Your App, Part 1 Entering international characters
Rainer Becker
Numerous articles and publications describe how to use Unicode and such in Visual FoxPro applications to enable the input and display of international character sets. Visual FoxPro cannot process double byte character sets and a workaround is needed in all cases. The simple approach discussed here might be the quickest solution to internationalize the data input capabilities of your application, at least to some degree.


TOC July 2011 - Number 21


Editorial: It's show time again
Rainer Becker
Mark the date: October 26 - 29, 2011. The Southwest Fox 2011 will take place at the Legado Hotel, Gilbert, Arizona, USA and you should not miss this great event! All details including very interesting session descriptions and the speakers' biographies are available on-line at www.swfox.net. Registration is already open.

Deep Dive: The ctl32 Library, Part 1
Doug Hennig
Want to add fresher, more modern-looking controls to your applications? Want to avoid ActiveX issues? Take a look at the ctl32 library.

Know How: Talking to Microsoft Office
Tamar E. Granor, Ph.D.
While most Office Automation code moves smoothly from older versions to the latest, some changes in recent versions do have an impact on the process of automating the Office apps. One change in Office 2010 has major implications for applications that need to use Office's applications programmatically.

Customerizing: Customizing Your Vertical Market Application, Part IV
Cathy Pountney
In the previous three installments of this four-part series, I introduced you to a customization methodology you can implement in your vertical market application to keep your standard code independent from your custom code, yet have the two code bases “play nice“ together. I showed you how to lay the foundation and add hooks in your application. I showed you how to build the custom application and add basic functionality. I explained how to customize menus, forms, processes and even offer customized data. In this last article of the series, I show you how to customize my favorite part of an application; Reports.

Silverlight: Applications and the local System
Michael Niethammer
As You saw this headline You might be wondering why it is necessary to write an article in Fox RockX about SL-applications and the system they are running on. But please remember: Silverlight is a web-technology, applications written this way are running on the local system in a “sandbox”, hosted by a web browser, without any access to the local machine. Thinking about business- applications it becomes very important to talk about ways to use the local file system, automate applications like Office or using the local hardware.

VFPX: Thor Introduction
Rick Schummer
Thor is designed to be the ultimate IDE extension and tool manager and is relatively new to VFPX. Thor helps you manage hotkeys as shortcuts to your add-ons, allows you to create and manage a developer menu, and positions itself as a facilitator to add-ons and the ability to more easily share tools you create with other Visual FoxPro developers. This month Rick is going to give you a short introduction to this fluid project in hopes you will help test it out and provide some of your own add-ons to share with the Fox Community, and then next time dig deeper into some extensions samples.


TOC May 2011 - Number 20


Deep Dive: Email and File Transfer the Fast (and Cheap!) Way
Doug Hennig
In the previous two issues, Doug discusses free libraries generously provided by Craig Boyd to compress and decompress files and encrypt and decrypt strings and files. In this issue, he discussed two more libraries that add MAPI email and file upload and download capabilities to your applications.

Know How: Build Your Own Project Tools
Tamar E. Granor, Ph.D.
While Visual FoxPro's Project Manager doesn't offer much in the way of tools to audit or manage projects, the ability to address the project as an object more than makes up for this deficiency.

Customerizing: Customizing Your Vertical Market Application, Part III
Cathy Pountney
In the previous two installments of this four-part series, I introduced you to a customization methodology you can implement in your vertical market application to keep your standard code independent from your custom code, yet have the two code bases “play nice“ together. I showed you how to lay the foundation and add hooks in your application. I showed you how to build the custom application, add basic functionality, and explained how to customize menus. In this article, Part 3, I take it a step further and show you how to customize forms, processes, and offer customized data to your clients.

Tools: dFPUG.fll Version 3 - Zip, Scan and more
Venelina Jordanova and Uwe Habermann and Erich Todt
The dFPUG.fll has grown up. The little FLL with functions for compressing and decompressing files has become an ample collection of functions indispensable for many purposes. FoxPro developers are offered capabilites hitherto unknown.


TOC March 2011 - Number 19


Deep Dive: Encryption the Fast (and Cheap!) Way
Doug Hennig
In the previous issue, Doug discussed a free library generously provided by Craig Boyd to compress and decompress files using the ubiquitous ZIP format. This time, he examines another free library from Craig, one that encrypts and decrypts strings and files.

Know How: Inside the Object Inspector
Tamar E. Granor, Ph.D.
In my last article, I demonstrated the Object and Collection Inspector, a new tool I built to overcome the VFP Debugger's weaknesses in working with collections. This time, I'll open the hood and cover some of the issues I encountered in building the tool.

Customerizing: Customizing Your Vertical Market Application, Part II
Cathy Pountney
Part 1 of this four-part series introduced you to a customization methodology you can implement in your vertical market application to keep your standard code independent from your custom code, yet have the two code bases “play nice“ together. This article, Part 2, dives into the code showing you how to lay the foundation and start building the custom application as well as how to add some customization to menus in your application.

VFPX: Vista (and Windows 7) Dialogs via COMtool
Rick Schummer
Sedna was released on January 25, 2008, which is more than three years ago. Yet Rick still finds Visual FoxPro developers asking questions about Sedna, where to go get it, what is included, and how to install it. Microsoft open sourced the Sedna release package and source code, and made it so they could be available on VFPX. Now developers can extend them and have the ability to re-release them to the Fox Community. This month Rick is going to show you the VistaDialogs4COM, which is one of the components available in the Sedna package.


TOC January 2011 - Number 18


Deep Dive: Compression the Fast (and Cheap!) Way
Doug Hennig
Need a way to compress and decompress files in your applications? VFP guru Craig Boyd has created a free library to zip and unzip files quickly and easily.

Know How: Introducing the Object and Collection Inspector
Tamar E. Granor, Ph.D.
For the last four years, I've been working on a project that has grown to include a complex object hierarchy with many embedded collections. While VFP's collection class is quite useful, the debugging tools for collections are weak. In particular, there's no support for drilling down into collections. So I finally created my own tool.

Customerizing: Customizing Your Vertical Market Application, Part I
Cathy Pountney
Writing a vertical market application can be very rewarding. You write one application, sell it numerous times, and sit back while the money rolls in. Well,that's the theory anyway. The reality is often times new clients want to buy your software as long as you can change this one little thing. Managing custom code for various clients within your application can easily turn into a nightmare as your client base expands. This article, part 1 of a four-part series, introduces you to a customization methodology you can implement in your vertical market application to keep your standard code independent from your custom code, yet have the two code bases “play nice“ together.

Silverlight: Lightswitch - a first look at the Beta of the new RAD tool
Michael Niethammer
End of August this year Microsoft published the first Beta of their new product called Lightswitch (former internal name: KittyHawk). This product should fill a gap in the Visual Studio toolset for professional developers as well as for home users to create database applications as easy as possible. Without writing a line of code, Lightswitch enables the user to create CRUD applications for different datasources (locally or anywhere else) easily. Even though it’s somewhat a model-based application generator there are enough ways for enhancing the generated application to make the toolset a valuable thing for professionals. In this article I will give a brief overview of Lightswitch and its architecture.

Tools: Application String Handling Made Easy with Foxparse C library
Pradip Acharya
In business applications (and in general), we are faced with complex string handling and parsing issues every day. Fulfilling this requirement with the rudimentary VFP functions SUBSTR, ATC and ALINES is a tedious task involving lengthy ad hoc coding with numerous chained function calls within VFP loops, slowing down development not to mention execution. In this introductory article, Pradip Acharya presents the broad outlines of the new Foxparse C library, its advantages, how it’s used and a few core functions with examples. In a forthcoming issue, the complete set of functions and the advanced options will be unveiled. Foxparse.fll included in this download is the curtailed version of the library.


TOC November 2010 - Number 17


Silverlight: Silverlight Business Applications
Venelina Jordanova and Uwe Habermann
You can create Silverlight 4 applications with any version of Visual Studio 2010. We are using the version “Visual Web Developer 2010 Express“ which is available for download free of charge. Basically all Silverlight 4 applications can be developed with this free version of Visual Studio 2010. But the various commercial versions of Visual Studio offer an extended debugging, automatized testing capabilities, and the possibility of integrating them in a source code management system. However, the free Visual Web Developer 2010 Express is the right choice for beginners. And in many cases it will suffice for doing professional development work.

Deep Dive: A More Flexible Report Designer
Doug Hennig
This month, Doug presents a way to make the VFP Report Designer more flexible, such as customizing the pages of the properties dialogs without having to change ReportDesigner.APP.

Know How: Understanding Business Objects, Part III
Tamar E. Granor, Ph.D.
Once you have business objects, you need to connect them to the user interface. Plus changing the application is easier than when business logic and UI code are mingled


TOC September 2010 - Number 16


Editorial: Rescue in sight with Silverlight
Rainer Becker
Dear Fox RockX reader,the publisher of Fox RockX magazine, the FoxPro User group of German Language Inc., is happy to report good news: Our plans to offer a migration path for Visual FoxPro developers have taken big steps forward!
Complete article available at http://www.foxrockx.com.

VFPX: zProc IntelliSense
Rick Schummer
IntelliSense in Visual FoxPro is highly extensible and this is proven by the number of developers who create scripts over the years to assist themselves and other developers in writing source code quicker. This month Rick is going to dive into the relatively new "zProc, zVFP, and zCOM IntelliSense Scripts" project headed up by Jijo Pappachan to show you three new scripts which may or may not be useful for your development, and potentially can save you time.

Deep Dive: Practical Uses for GDIPlusX, Part III
Doug Hennig
GDIPlusX is a VFPX project that exposes GDI+ to VFP applications as a set of VFP class libraries. GDIPlusX makes it easy to add new graphical abilities to your applications, allowing you to provide a fresher and more powerful user interface. This article is the last in a series that examines some practical uses for GDIPlusX.

Know How: Understanding Business Objects, Part II
Tamar E. Granor, Ph.D.
In my last article, I explained what business objects are and why I had a hard time learning to use them. Then, I looked at a client application (called NMS) that brought the ideas home to me. In this issue, I'll begin to look at the details of using business objects.

Silverlight: SL Data-Binding and Data-Validation
Michael Niethammer
Developing Silverlight applications is totally different from the way FoxPro developers did things for a long time. Most of them don't like to switch over to Visual Studio because of the DataBinding in old style Winforms Applications. Microsoft has released the Windows Presentation Foundation and Silverlight with a totally rewritten User-Interface. So let's take a closer look at it.


TOC July 2010 - Number 15


SilverLight: SilverLight for VFP Developers
Venelina Jordanova and Uwe Habermann
In the past most of VFP developers were in search of new development tools. Some of us switched to other development platforms like Java or .NET, but most VFP developers still looked for a development platform.
Complete article available at http://www.foxrockx.com.

VFPX: Code References
Rick Schummer
The Code Reference developer tool is one of those tools some developers find indispensible and other developers find less useful. Regardless of your opinion all Visual FoxPro developers have the need to do global searching of the different source code files included in their projects. Jim Nelson decided he wanted a few of his enhancements ideas implemented to make his searching more productive and is making Code References a little more powerful. This month Rick digs into the beta release of this product to show you what is new, and maybe even shed some light on some gotchas with the latest release.

Deep Dive: Practical Uses for GDIPlusX, Part II
Doug Hennig
GDIPlusX is a VFPX project that exposes GDI+ to VFP applications as a set of VFP class libraries. GDIPlusX makes it easy to add new graphical abilities to your applications, allowing you to provide a fresher and more powerful user interface. This article is the second in a series that examines some practical uses for GDIPlusX.

Know How: Understanding Business Objects, Part I
Tamar E. Granor, Ph.D.
I've been hearing about business objects since some time in the mid-1990's. Not long after VFP added object-orientation, people started recommending that business logic be encapsulated into a set of separate objects. Intellectually, I understood the idea, but the examples I saw never really seemed to deliver on the promise. The standard example involved a customer object with the customer data entry form calling on that business object to do things like calculate sales tax. While I could see how to build that kind of object, it didn't seem all that important.


TOC May 2010 - Number 14


Editorial: The Visual FoxPro Roadshow 2010
Rainer Becker
Dear Subscribers, thank you for your ongoing support of Fox RockX! And here comes our gift to you for supporting us: You are herewith invited to a free one-day workhop right after the South West DevCon in October!
Complete editorial available at http://www.foxrockx.com.

VFPX: OOP Menus
Rick Schummer
OOP menus are probably the second highest requested feature to be added to Visual FoxPro over the years. Microsoft never responded to this request for some reason (I am speculating it was most likely a resource issue). Doug Hennig wanted OOP menus and over the years implemented his own set of classes to accomplish this task and has posted the classes up on VFPX for others to use and help enhance.

Deep Dive: Practical Uses for GDIPlusX, Part I
Doug Hennig
GDIPlusX is a VFPX project that exposes GDI+ to VFP applications as a set of VFP class libraries. GDIPlusX makes it easy to add new graphical abilities to your applications, allowing you to provide a fresher and more powerful user interface. This article is the first in a series that examines some practical uses for GDIPlusX.

New Ways: Extending the Toolbox
Tamar E. Granor, Ph.D.
Several issues back, I wrote about the Toolbox, a cool tool added in VFP 8 that makes designing forms and classes much easier. Like many other VFP tools, the Toolbox was written with VFP and was designed with extension in mind. This month, I want to show you how simple some changes to the Toolbox are, so you can customize it for your needs.

New Ways: Dating with DBI
Toni Feltman
In the last issue of Fox RockX I talked about three of the eight ActiveX controls that DBI Technologies have graciously provided Visual FoxPro 9.0 SP2 users for free. In this issue I am going to talk about two more controls that make working with dates a little more exciting.


TOC March 2010 - Number 13


Editorial: Visual FoxPro Stack Overflow
Ken Levy
In software, a stack overflow occurs when too much memory is used on the call stack, usually caused by programming errors, typically resulting in a program crash. In ideas, a stack overflow might occur when too many ideas, all with good intention, comprise a concept which is too far reaching and/ or unrealistic to reach its goals.
Complete editorial available at http://www.foxrockx.com.

VFPX: ProjectHookX
Rick Schummer
Projecthooks were introduced in Visual FoxPro 6, yet even today I know developers who have not implemented projecthooks in their development. Projecthooks allow you as a developer to write code that reacts to the different events of the Project Manager. One of the drawbacks of projecthooks is you only get one per project. Toni Feltman from F1 Technologies saw this limitation pain and designed one approach to working around it so developers can use more than one projecthook for any one project and calls this project ProjectHookX.

Deep Dive: Introduction to GDIPlusX, Part III
Doug Hennig
GDIPlusX is a VFPX project that exposes GDI+ to VFP applications as a set of VFP class libraries. GDIPlusX makes it easy to add new graphical abilities to your applications, allowing you to provide a fresher and more powerful user interface. This article is the third in a series that provides an introduction to GDIPlusX, going through the basics of GDI+, looking at the classes in GDIPlusX, and going through various samples of how to use GDIPlusX in VFP applications.

New Ways: OOP + Metadata = Flexibility
Tamar E. Granor, Ph.D.
Over the last few years, I've found many situations where data-driving code makes an application easier to maintain. But sometimes, data-driving alone can lead to repeated code and more difficult maintenance. In such cases, combining good objectoriented practices with data-driving may provide a better solution.

New Ways: Paying it Forward
Toni Feltman
For years DBI Technologies, www.dbi-tech.com, has offered for sale ActiveX controls that could be used in various development languages and unlike many other third party vendors they had examples written in FoxPro. Now, DBI's support of the FoxPro community is even better. They have agreed to give away 8 of their active controls for free to users of VFP 9, SP2 in a bundle called the Sedna Components.


TOC January 2010 - Number 12


Editorial: Get on the VFPX Bandwagon
Rick Schummer
A group of VFPX developers/users held a bonus session during the Southwest Fox conference in October to discuss future direction of VFPX and what is needed to get the word out to other developers in the Fox Community. There were a number of good ideas shared, but there are three key details I believe need to be highlighted.
Complete editorial available at http://www.foxrockx.com.

VFPX: SCCText X
Rick Schummer
Source code control is an integral part of the development process for Visual FoxPro developers, but much of the source code elements in Visual FoxPro are stored in binary format (DBF files), which is not friendly to source code control repositories. The Alternate SCCText project and specifically the SCCText X program is the key ingredient to flattening the DBFs into text files so comparisons can be performed between versions, and merging of two changed versions can occur. Jurgen wOOdy Wondzinski leads the SCCText X project that contains what is considered the gold standard for the Visual FoxPro SCCText process.

Deep Dive: Introduction to GDIPlusX, Part II
Doug Hennig
GDIPlusX is a VFPX project that exposes GDI+ to VFP applications as a set of VFP class libraries. GDIPlusX makes it easy to add new graphical abilities to your applications, allowing you to provide a fresher and more powerful user interface. This article is the second in a series that provides an introduction to GDIPlusX, going through the basics of GDI+, looking at the classes in GDIPlusX, and going through various samples of how to use GDIPlusX in VFP applications.

New Ways: Take adventage of SQL improvements
Tamar E. Granor, Ph.D.
When SQL commands were added in FoxPro 2, it didn't take me long to see that they could make writing code easier. SQL SELECT, in particular, was very appealing since it made it possible to retrieve the data I needed by specifying what I wanted rather than how
to find it.

New Ways: Wheres the Beef?
Jim Booth Offsite link to http://www.jamesbooth.com
Many times I have found my self using onto a piece of software for one purpose only to find out that it has many other very valuable uses as well. It's like finding a free tool in my tool box. Well Fox RockX is just like that once you discover its web version. If you haven't yet visited http://www.foxrockx.com please make it a point to visit there and spelunk around abit real soon. There are gems lying around that place worth their weight in gold.

New Ways: String.Format for VFP
Eric Selje
If you havent used C#s String.Format() method, its a real treat. Theres nothing natively like it in VFP, but we can certainly roll our own equivalent. This will make our code easier to read and maintain. This article will show why you want to do that, and how to do it.

VUProjectTools: Updating project files from the source control management
Venelina Jordanova and Uwe Habermann
To make our daily development work easier we have brought many useful little tools to life. In this article in two parts we would like to introduce two of our V and U Project Tools. This second part concerns how to update project files from the source control management.


TOC November 2009 - Number 11


Editorial
Ken Levy
Complete editorial available at http://www.foxrockx.com.

VFPX: Control Renamer
Rick Schummer
The Control Renamer Builder project headed by long time Visual FoxPro guru Tamar Granor is relatively new to VFPX, but has been around a few years. This tool started out as a personal project to help Tamar rename controls in forms developed by other developers so the names of the controls have meaning and followed common programming standards. In this article I hope to show you how this sophisticated builder actually helps me refactor code that I have in forms and VCX-based classes.

Deep Dive: Introduction to GDIPlusX, Part I
Doug Hennig
GDIPlusX is a VFPX project that exposes GDI+ to VFP applications as a set of VFP class libraries. GDIPlusX makes it easy to add new graphical abilities to your applications, allowing you to provide a fresher and more powerful user interface. This article is the first in a series that provides an introduction to GDIPlusX, going through the basics of GDI+, looking at the classes in GDIPlusX, and going through various samples of how to use GDIPlusX in VFP applications.

New Ways: Collections instead of Arrays
Tamar E. Granor, Ph.D.
Every procedural programming language I used before FoxBase+ offered arrays as a way to hold an ordered collection of information. So when I started learning FoxBase+, its arrays made sense to me. Infact, the very first article I ever published in a Foxjournal was about arrays.

Best Practices: Best Practices Part VI
Jim Booth Offsite link to http://www.jamesbooth.com
In this series of articles we have discussed a wide variety of issues related to the development of high quality software systems. We have investigated methods for achieving efficiency in our development efforts and attempting to reduce the risk for errors in our code.

VUProjectTools: Beauty Studio
Venelina Jordanova and Uwe Habermann
To make our daily development work easier we have brought many useful little tools to life. In this article in two parts we would like to introduce two of our V and U Project Tools. The first part treats the so-called Beauty Studio.


TOC September 2009 - Number 10


Editorial: New kids on the block
Rainer Becker
And here they come: A new book about Visual FoxPro has been sent to the printer today, and printed copies will be available in September 2009. It is the rewritten version of the best-selling Visual FoxPro book of all time: Effective Techniques for Application development with Visual FoxPro 6.0 by Jim Booth and Steve Sawyer from Hentzenwerke Publishing. Jim Booth has reworked and updated it for Visual FoxPro 9.0, but it is still valid for all versions. And why do we say kids instead of kid? Because this book, Effective Application development with Visual FoxPro comes in two flavours, English and German at the same time!
Complete editorial available at http://www.foxrockx.com.

VFPX: Code Analyst
Rick Schummer
Code Analyst is a tool developed by Andrew MacNeill who is a long time Visual FoxPro guru and most recently famous for his The Fox Show podcasts (http://akselsoft.libsyn.com/). Code Analyst is being developed to help Visual FoxPro developers recognize possible refactoring opportunities. If you are not familiar with refactoring then you need to know it is part of the development process when you recognize a smell of properly working code that could be written better. There are a number of refactoring patterns developers have detailed over the years and concepts we all recognize in our code and in other developers code. Code Analyst is here to help you find these opportunities faster.

Deep Dive: Custom UI Controls:SFCombo Tree
Doug Hennig
Sometimes you need to display a list of items but don�t have much room to do so. While a combo box is usually used in this case, it doesnt display a hierarchical list or support checkboxes for items. SFComboTree fits this need nicely.

New Ways: The Right Keys are Primary
Tamar E. Granor, Ph.D.
FoxPro is a relational database, that is, data is stored in multiple tables with fields that establish relationships between those tables. In order to establish those relationships, there must be a way to uniquely identify each record in a table. The field or fields that link one table to another are called keys. Over the years, the best practices for creating those keys have changed, as have the tools for doing so in VFP.

New Ways: Test Driven Development, After the Fact, Part II
Eric Selje
In Part I, we reviewed what test-driven development (TDD) was, created some unit tests in Fox-Unit, and put together some trivial code to calculate a factorial to run the tests on. It�s easy stuff when youre starting with a blank slate, but how do you get started when youve already got a ton of legacy code? This article will show you how to make a couple of quick changes to Fox Unit to quickly get a suite of tests on existing code.

New Ways: ActiveLabel Class - CmdButton Substitute for Forms with the New Look
Pradip Acharya
On the Web and in desktop applications, command buttons are a rare sight today. An action is launched via a highlighted or underlined text string. While VFP offers a HyperLink native class and a Click method for a label, neither a Hyper-Link nor a passive label fulfils the general need for a full featured ActiveLabel control with Set Focus, Keypress and TabStop functionality with builtin co-ordination of associated internal or external access keys, images(s), and supplementary descriptive label. Pradip Acharya presents an easy to use ActiveLabel class with rich capabilities which is not a container class. The class library in the download is self sufficient with no external dependencies. The class is also an excellent Toolbar alternative for simplicity, and can also serve as raised 3D buttons as seen in VFP task panes, with optional double line captions.


TOC July 2009 - Number 9


Editorial: All You Can Eat!
Rainer Becker
It's conference time again. This year's Prague DevCon took place, South West Fox and the FoxPro DevCon Germany and other events are coming soon. And lots of new topics and new stuff to learn for everyone. For 15+ years I have really tried to attend conferences and learn new things. And the FoxPro conferences I always enjoyed most as they are the best on earth from my perspective. I am really sorry about each one I missed for whatever reason. Surely the FoxPro DevCons are smaller nowadays, which is a pity as the number of topics you need to know about has increased each year. Therefore developers have to attend other conferences as well.
Complete editorial available at http://www.foxrockx.com.

VFPX: Tabbing Navigation
Rick Schummer
Rick covers the Tabbing Navigation project this month in his continuing series of articles on the open source project known as VFPX hosted on Codeplex. This project provides developers with a snappy dialog filled with the titles of the open windows as well as a list of standard Visual FoxPro windows available for selection. This enhancement to the Visual FoxPro Interactive Development Environment (IDE) is clean and a fast way to find a specific instance of an editor or designer window when you have numerous instances open.

Deep Dive: Custom UI Controls:Splitter
Doug Hennig
Adding a splitter control to your forms gives them a more professional behavior and allows your users to decide the relative sizes of resizable controls.

Best Practices: Best Practices Part V
Jim Booth Offsite link to http://www.jamesbooth.com
Last time we discussed some of the concepts that allow us to really exploit our object oriented approach to system development. This time we will pull back a bit and look at our work from a more distant perspective. We will look at the very big picture of our system design by focusing on the architectural structure of our systems.

New Ways: Use the Toolbox!
Tamar E. Granor, Ph.D.
Until now, Ive focused this column on the FoxPro language, covering commands and functions. In this issue, I want to take a look at one of my favorite recent tools, the Toolbox, introduced in VFP 8.

New Ways: Test Driven Development,After the Fact, Part I
Eric Selje
Test-Driven Development (TDD) is easiest when you do it right from the start. But once you�ve written a lot of code it may seem overwhelming to start testing it after the fact. But if you change any of that existing code, having tests is the best way to ensure that you don�t break any functionality. It may seem like a catch-22, but it is worthwhile to create tests on legacy code so you can use to make sure that doesnt happen.


TOC May 2009 - Number 8


Editorial: VFP 9 SP2 News
Rick Schummer
The perception and adoption of the Visual FoxPro 9 Service Pack 2 has been in a word, underwhelming. Reports of the Report Designer having some bugs and the Help file being a mess spread across the various forums and blogosphere extremely fast. Rick has good news on both fronts!
Complete editorial available at http://www.foxrockx.com.

VFPX: PEM-Editor
Rick Schummer
The PEM Editor is one of the fastest moving projects on VFPX and for this reason one of the hardest tools to write about in this continuing series. That said, this month Rick attempts to catch you up on all the development for the PEM Editor, show you some of the super cool features it has to help you be more productive, and expose some of the new functionality being developed for the fourth release of this powerful tool.

Deep Dive: Creating Explorer Interfaces in Visual FoxPro, Part 3
Doug Hennig
The last article in this three-part series finishes examining a set of classes that provide Explorer-style interfaces to Visual FoxPro applications.

Best Practices: Best Practices Part IV
Jim Booth Offsite link to http://www.jamesbooth.com
Last month we covered the introduction of object orientation and some of the key concepts of that programming paradigm. This month we will continue to look into the key concepts of object orientation and discover some additional mechanisms that are at our disposal within this conceptual programming approach. In addition to covering some more of the programming concepts of object orientation, this month we will introduce and discuss at some length the idea of application frameworks and see how they are constructed and what they can do for us. Obviously, in a single article we will not be building a complete application framework or even discussing a complete framework but we will cover enough about frameworks to give you a very good start on how to approach building your own and how to evaluate any of the many commercial application frameworks that are out there.

New Ways: Handling Code that Changes at Runtime
Tamar E. Granor, Ph.D.
There are lots of places in VFP code where you dont know until the code is running exactly what you want it to do. Perhaps you want to let the user choose a file to operate on, or you want to run a report based on criteria specified by a user. VFP offers a number of different ways to handle code that isnt known until run-time. Knowing which one to use when affects the efficiency, accuracy, and reliability of your code, but many people stick with macros and dont use any of the other options. In this article, I'll look at each of the options and discuss where its appropriate.

New Ways: Use FastNoData to drastically improve form load times
Mike Yearwood
Forms that take too long to load are a cause of frequent complaints. Heres a technique that can dramatically reduce form load times. Ive seen anywhere from 8 to 4375 times faster. My most complex form went from loading in a range of 8 to 10 seconds, down to a consistent 2.2 seconds.


TOC March 2009 - Number 7


Editorial: Thanks for the Memories (and all the code)!
Doug Hennig
As they discuss in this issues article, Andy Kramek and Marcia Akins have written their last Kitbox column. Doug offers a tribute to Andy and Marcia to celebrate their years of contribution to the FoxPro community.
Complete editorial available at http://www.foxrockx.com.

VFPX: Fox Tabs the VFP IDE
Rick Schummer
Fox Tabs is relatively new to VFPX, but has been in development for years. In October 2008 project manager Joel Leach dusted off the initial development started several years ago by Craig Bailey and Scott Scovell and began moving the tool forward. This month Rick will discuss this innovative approach to enhancing the VFP IDE and explain how he uses it to enhance his productivity.

Deep Dive: Creating Explorer Interfaces in Visual FoxPro, Part 2
Doug Hennig
In the first part of this three-part series, Doug presented a set of classes that form the basis of an Explorer-style interface. This article looks at more of these classes.

Kit Box: So Long and Thanks for all the Fish!
Marcia Akins and Andy Kramek
For more than 10 years Andy has been writing the Kitbox Column. He was first published, with co-author and long-time friend, Paul Maskens, in the April 1998 edition of Fox Talk. Andy and Paul wrote some 42 articles together in the three and a half years of their collaboration and the style of the column as an interchange between two peers began to gradually evolve. When Paul retired from the column in September 2001, Marcia jumped in and took over as Andys partner in the column, as she is in real life. Together they have written more than seventy articles together and, under their collaboration, the back-and-forth style of two real-life developers discussing a problem of mutual interest evolved further until it truly has become their unique signature. Andy and Marcias writings are instantly recognizable, and their style has even been imitated (the sincerest form of flattery even if it was not very successful). However, like all things, this too must come to an end and this is the final offering from Andy and Marcia.

New Ways: The Scope of Things
Tamar E. Granor, Ph.D.
When I started using FoxBase+, there were two kinds of variables available: public and private. If you did nothing, any variables you used in code were private. Since that was the most restrictive scope available, it was easy to get into the habit of not declaring variables unless they were public.

Best Practices: Best Practices Part III
Jim Booth Offsite link to http://www.jamesbooth.com
In the last article of this series we covered the concepts of encapsulation and cohesiveness to understand how to construct routines that have a solid internal structure and we discussed coupling to investigate the issues involved with constructing routines that play well with others. Our first venture into this best practices series covered what constitutes a routine and why we care about routines at all.


TOC January 2009 - Number 6


VFPS: Visual FoxPro Stack
Ken Levy
The evolution and next phase of Visual FoxPro has essentially been transferred from Microsoft to the FoxPro community. Visual FoxPro will evolve, but the results of its evolution depend on the efforts within the FoxPro community. VFPS (Visual FoxPro Stack) can become an important part in the future and perception of Visual FoxPro starting in 2009 and into the next decade.
Complete editorial available at http://www.foxrockx.com.

VFPX: Using Desktop Alerts
Rick Schummer
The Desktop Alerts provide you with another common mechanism to deliver informational messages to the users while your application is running. This month in Rick�s continuing series on VFPX deep dives, he takes a look at the Desktop Alert project on Codeplex, and demonstrates why this control might help you get rid of a few WAIT WINDOWS in your applications.

Kit Box: Take it up with Management
Marcia Akins and Andy Kramek
All Visual FoxPro applications rely on data and in VFP we have various ways of handling sets of data. We may use tables directly, views, predefined cursors, or cursors generated on the fly by SQL queries. However, VFP doesnt have a command that will unconditionally create or open and make current a data set irrespective of the type. In this months column Andy and Marcia discuss the creation of a class that will do precisely that thing.

New Ways: From Type to Type
Tamar E. Granor, Ph.D.
Changing data from one type to another is a common requirement. In older versions of VFP, you had to know a veritable cornucopia of functions to handle the various possibilities. A few recent additions make type conversion easier.

Best Practices: Best Practices Part II
Jim Booth Offsite link to http://www.jamesbooth.com
Last month we started this series with a little history and some discussion of basic programming practices. We discovered the ideas of routines and modules in our application development and we discussed the impact of designing for expansion to be able to adapt to future requirements. This month we will be digging deeper into the construction of our code and the concepts that we need to understand to realize the benefits of well designed system development.

Extend Excel with VFP!: Using a Visual FoxPro ComServer with Excel (and other VBA applications)
Rainer Voemel
Most programmers that use VBA are non-IT employees usually, with a marketing, finance, or logistics background trying to automate some reporting tasks. Usually this starts with an Excel spreadsheet and the use of ODBC. With ODBC the user can retrieve results from database queries and create some powerful reports. However, there might be some surprises that will make the user look for a different solution. In my case this was a bug in the VFP ODBC driver when I was using the default settings. The setting Fetch data in background caused the ODBC driver to hang after creating a lot of reports. In my case this was creating a personalized report for roughly 150 recipients. Sometimes after about report 92 the process would hang; at other times this would be around report 102, etc. This made me want to use a VFP ComServer instead of ODBC. After unchecking the ODBC setting Fetch data in the background, the problem vanished, but I now understood the potential benefits of using a ComServer. In addition, the ComServer now has all the SQL features of Visual FoxPro 9, whereas the ODBC driver has not been updated for several years. The ComServer I am using now has about 150 methods. This article describes how to use a Visual FoxPro Comserver with Microsoft Excel.


TOC November 2008 - Number 5


VFPX: Using the BalloonTip
Rick Schummer
The balloon tip control is a nice way to communicate information to the users while they are interacting with the user interface of the application. This month in Rick�s continuing series on VFPX deep dives, he takes a look at the ctl32_BalloonTip control found in the ctl32_StatusBar project up on Codeplex.

Deep Dive: Creating Explorer Interfaces in Visual FoxPro, Part 1
Doug Hennig
Explorer-style user interfaces are among the most popular for today�s applications. However, working with and integrating the controls necessary to implement an explorer interface can be challenging. This first of a multi-part series presents a set of classes and techniques that makes short work of developing explorer interfaces for your applications.

Kit Box: A Moving Experience
Marcia Akins and Andy Kramek
One question that seems to pop up again and again in various on-line forums is how to create a grid with mover bars that will allow the users to re-sequence the records in the same way that they can in a list box. This month Andy and Marcia discuss how to implement this.

New Ways: Breaking Up is Not Hard to Do
Tamar E. Granor, Ph.D.
In my last article, I looked at techniques for reading and writing text files. Once you�ve read a text file into memory, or perhaps created a long string in some other way, its not unusual to need to break it up into lines, or words, or based on some other criteria. Prior to VFP 6, you had to use different approaches depending on the criteria for parsing. With the introduction of the ALINES() function, though, most simple parsing has been reduced to a single function call.

Best Practices: Best Practices Part I
Jim Booth Offsite link to http://www.jamesbooth.com
Programming in Visual FoxPro is not really any different than programming in any other language. Programming languages all have differing syntaxes and the commands and functions vary from one to the other, but the underlying concepts of good programming are universal across all languages. These underlying concepts of good programming are referred to as the Best Practices. In this article series I will be discussing the Best Practices in programming with Visual FoxPro. The Best Practices are the same for all languages; consequently, the only thing that will make this series about Visual FoxPro will be the example code.


TOC September 2008 - Number 4


Intro: Career Investment 101 - How can I become a better developer?
Rick Schummer
Rick gets asked the question: how can I become a better developer? He explains how he attempts to stay at the top of his game in software development.
Complete editorial available at http://www.foxrockx.com.

VFPX: Putting the OutlookNavBar to use
Rick Schummer
The Microsoft Outlook user interface was all the rage a few years ago. The last two versions of Outlook include the navigation bar with separate panes for you to manage email, calendar, contacts, tasks, etc. Developers scrambled to duplicate this interface in VFP applications. Emerson Stanton Reed first created the Outlook2003Bar. This month Rick is going to show you how to implement the most current OutlookNavBar and demonstrate some new flexibility included in the July 2008 release.

Deep Dive: Practical Uses for XML, Part 2
Doug Hennig
In part 1 of this two-part article, Doug examined the basics of XML: what it is, how its structured, how to create XML, and how to parse it. This article focuses on why XML is useful and shows some practical examples of how he�s used XML in various applications.

Kit Box: A program is trying to automatically send e-mail
Marcia Akins and Andy Kramek
Sending E-mail from within an application is often more than a luxury, and there are many ways of doing it in Visual FoxPro. Outlook automation is a common approach and works well, but the version of Collaboration Data Objects that was introduced with Windows 2000 offers a more flexible and extensible approach that allows you to generate E-mail without needing a specific E-mail client installed, or even a work-around for the security patch introduced in Office 2000 SP2. In this months column Andy and Marcia show how to implement CDO in Visual FoxPro.

New Ways: Working with text
Tamar E. Granor, Ph.D.
VFPs tools for working with text have improved as the importance of text files has grown. In a world where we need to parse and create HTML, XML, and other text formats, using the best VFP has to offer makes the job a lot easier.

TimeFrame Class - Autoset Past or Future Date Range in Reports
Pradip Acharya
Many financial and forecasting reports require a start date and an end date to be entered in the Report Setup interface. This can be a past or a future time period. A sales summary for the last completed Quarter or a preventive maintenance forecast for the next month are typical examples. It�s not easy for the user to figure out the limiting dates in the first place and secondly, users in general are averse to typing in dates in the stipulated format. The TimeFrame class was created to make it easy to autoset a date range with a click. Select any past or future time period from a dropdown list and the two dates are filled in programmatically. The user can then override either date or select the Open Dates option to enter a date range of choice.


TOC July 2008 - Number 3


VFPX: ctl32_StatusBar Easy to Implement
Rick Schummer
The VFPX project is a set of replacement controls designed to improve the user interface experience of your applications. In this issue of Fox RockX, Rick shows you how simple it is to implement a modern replacement for the Visual FoxPro native status bar.

Deep Dive: Practical Uses for XML, Part 1
Doug Hennig
XML can be a great way to store some types of data or transfer data from one application to another. In the first of a two-part article, Doug discusses what XML is and how to use it.

New Ways: Working with work areas
Tamar E. Granor, Ph.D.
Although we have had techniques that let us ignore work area numbers and letters for many versions, some developers still write code that addresses work areas directly. This month, I will look at how to write code without worrying about work area letters or numbers, and how to depend as little as possible on the currently selected work area. The result is better code that is easier to write and maintain.

Kit Box: Doing a PROPER job
Marcia Akins and Andy Kramek
Correctly formatting blocks of text is a problem that we all have to deal with from time to time. While VFP has functions for forcing text to either upper or lower case, its handling of mixed case text suffers from a number of shortcomings that make it essentially unusable in all but the simplest of circumstances. This month Andy and Marcia are discussing the issues surrounding the task of formatting text and come up with a class that does a better job of handling mixed case text.

Vista: Displaying form borders in Windows Vista
Uwe Habermann and Venelina Jordanova
If you are running VFP 9 applications in Windows Vista, you will know the problem. Forms with a Border Style setting other than 3 sometimes appear without a form border. In principle this bug shall have been fixed with VFP 9 SP 2. But then why are the forms often displayed incorrectly?

Events: The DevCon Germany 2007 from a visitors perspective
Boudewijn Lutgerink
While visiting the DevCon Germany last year I took the chance to listen to Steven Blacks sessions about niche markets and So fox is dead, now what?


TOC May 2008 - Number 2


New Ways: Use the right loop for the job
Tamar E. Granor, Ph.D.
Learning to use the right loop for the situation will make your code faster and more readable. Both of those goals are worth breaking old habits and building new ones. Happy looping!

New Ways: Stroking the Keys
Jim Booth Offsite link to http://www.jamesbooth.com
The mouse is commonly used for many tasks in windows. In real heads down data entry operations it is often more efficient for the users to keep their fingers on the home row. To accomplish this, it is necessary to provide keystroke equivalents for mouse actions like selecting an item from a menu or clicking on a button, even access to functionality that may not be represented by any menu option or button.

Deep Dive: A Generic Import Utility, Part 2
Doug Hennig
Part 1 of this two-part series presented a set of classes making up a generic import utility you can add to your applications to provide import capabilities from a variety of data sources. Part 2 focuses on the user interface components.

Kit Box: All a matter of form
Marcia Akins, Andy Kramek
This month Andy and Marcia create a class to handle the creation of word documents from templates using named Bookmarks and Tables to indicate where data should be inserted. The class was originally designed for use with Office 2003, but will work without modification in Office XP and Office 2000. It will also work in Office 2007 but, in that version, creates the new ".docx" file type by default.

VFPX: Property / Method Dialog Replacements
Rick Schummer
In the first issue of Fox RockX, Rick provided you an overview of VFPX and the Codeplex Web site where VFPX projects are established and maintained. In this issue he is starting a series of deepdives into the various projects of VFPX with the intent of exposing the productivity you can gain using VFPX tools, and enhance your applications using the various VFPX components. First up are two of the tools he uses numerous times a day: the New Property and Method dialog and the Edit Property/Method dialog replacements.


TOC April 2008 - Free ADS issue


Advantage Database Server for Visual FoxPro Developers
Doug Hennig
Advantage Database Server is a full-featured, high-performance client/server database engine. Interestingly, it can use Visual FoxPro DBF files as its data store and provides a number of benefits over accessing these files directly. This article introduces Advantage and discusses how to access it from VFP applications.


TOC March 2008 - Number 1


VFPX: Open Source Extensions
Rick Schummer
In 2007 I presented a session on VFPX at four Visual FoxPro Conferences in the United States and Europe. During each of the sessions I asked, How many of you have heard of VFPX? Approximately 10 to 15 percent of the people sitting in the room raised their hand. Since I believe VFPX is a significant part of the future of Visual FoxPro, this is a disturbing revelation. The goal of this series of articles is to introduce you to the VFPX open source project, and to do some high level overviews of the different tools and components, as well as some deepdives to show how they can be used in your day-to-day development of Visual FoxPro solutions. This article will describe VFPX, provide a short history of this project, show you where on the Internet you will find VFPX, and provide an overview of the Web site......

Deep Dive: A Generic Import Utility, Part 1
Doug Hennig
Data entry forms arent the only way your users want to put data into their applications. Often, important data is stored in other applications, so you need a way to import that data into your application. This article, part 1 of a two-part series, presents a generic import utility you can add to your applications to provide import capabilities from a variety of data sources......

New Ways: Parsing und Building File and Path Names
Tamar E. Granor, Ph.D.
I started using FoxBase+ nearly 20 years ago. In the evolution from that remarkably able product to Visual FoxPro 9, hundreds, perhaps thousands, of new elements have been added to the FoxPro programming language. Each new version has introduced not only new capabilities, but new ways to do old things.

Kit Box: Managing Global Variables
Marcia Akins, Andy Kramek
The use of Public Variables in FoxPro Applications has long been regarded as poor design. However there are many situations in which a variable that can be accessed, or updated, from anywhere in the application is really the only feasible way of handling things. In this article, Andy and Marcia design a data driven "Variable Manager" class that can be either be instantiated directly, or can be attached to an application object, to manage variables that need to be globally available...

Blog: Advantage Database Server V9.0, available soon
Andy Kramek
Sybase Anywhere have been working on a Visual FoxPro compatible version of the Advantage Database Server for some time and, just before Christmas, the long-awaited Version 9.0 was released in Beta. You can download the Beta version (time limited until mid of March, beta license expiring on March 28th) from here:....


See Also Fox RockX Fox RockX Introduction Fox RockX Issues

Category Magazines Category VFP Magazines
( Topic last updated: 2015.08.17 01:41:25 AM )