Logo

Hacker’s Guide to Visual FoxPro
An irreverent look at how Visual FoxPro really works. Tells you the inside scoop on every command, function, property, event and method of Visual FoxPro.

@ Commands

These commands were among the most important commands in every version of FoxBase and FoxPro until VFP. With the movement to control-based forms, the @ Commands for controlling input and output move over to the “included for backward compatibility” category.

Don’t write any new code in Visual FoxPro that uses the @ Commands. As for converting older code, it’s a hard call. So far, we’re leaving our existing apps happily in 2.x and beginning only new projects or complete revisions in Visual FoxPro.

Nonetheless, you might have to move some old screens into Visual FoxPro. You have two choices: Maintain the screen in 2.x and use the generated SPR in Visual FoxPro, or let the Converter start the transition toward object-oriented input. The Converter itself also offers two choices—Functional Conversion and Visual Conversion. Functional Conversion gives you something you can use immediately, but at the cost of pretty ugly internal structure. Visual Conversion leaves you with work to be done, but moves you farther along the path to true object orientation.

Since they supplied us with the code, we expect that eventually we could get the Converter to produce code we’d be willing to maintain at a client site years down the road, but with 9000 pretty abstruse lines of code to decipher in the Converter, we generally feel it is easier to start with a clean slate and develop new forms, leaving the @ … SAYs and GETs behind in 2.x. Besides, hasn’t the client always been complaining about one piece of functionality in this screen? And things that need to get moved in that one? And don’t you really need to re-engineer the way that query gets built? See what we mean? Start from scratch and give your clients their money’s worth.

After several years of watching people struggle to get their 2.x code to run in VFP, we feel even more strongly about not doing it. However, we also recognize that some people have humongous applications that need to move forward for one reason or another. Our best advice is to check out the incremental conversion methodology developed by MicroEndeavors, Inc. that lets you keep your app running while you slowly move it to VFP.

You can mix and match the @ Commands with Visual FoxPro’s controls, so a form could contain both a Visual FoxPro text box and an @…GET. But we can’t think of any reason you’d actually want to do this. If you want to put stuff right on the form, use the form’s drawing methods: Box, Circle, Line and Print.

The entries for the individual @ Commands do not go into great detail because we don’t think you should use them in Visual FoxPro. If you need more information, pick up one of the excellent references available for FoxPro 2.x—see “Resource File” for some suggestions.