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.
This makes the seventh book for which at least one of us is listed as a principal author. So, over the years, we’ve thanked a lot of people for helping us do it right. Nonetheless, there are some whose contributions to this volume are significant enough to warrant special mention.
As usual, we’ll start out with those who contributed to the earlier editions of the Hacker’s Guide. You’ll find their names in the Acknowledgments for those editions.
Also, despite the fact that we’ve done it before, we have to thank our publisher and good friend, Whil Hentzen. He continues to provide a channel for quality Visual FoxPro books, and recognizes that authors and editors who really know a product are a key resource.
We were fortunate enough to convince Jeana Frazier to serve as our copy editor once again. Her ability to make us look better without removing the Hacker’s attitude is nothing short of miraculous.
Once again, quite a few people sent us corrections or
updates to earlier editions, or suggestions for improvements. (Yes, we know we
messed up the parameters to MESSAGEBOX()
.) We’ve incorporated a great deal of
their feedback into this edition. Our thanks to the following: Bill Anderson,
Sergey Berezniker, Art Bergquist, Thomas Bishop, Chaim Caron, Pierre Chaillet,
Robin Connelly, Dan Covill, Sue Cunningham, Malcolm Donald, Jim Duffy, Hank
Fay, Garrett Fitzgerald, Dan Freeman, Stanley Gainsforth, Carl Karsten, Mike
Lewis, Tim McConechy, Paul McGucken, Paul McNett, Barbara Peisch, Viv Phillips,
Paul Rosier, Rip Ryness, Steve Sawyer, Robert Stone, Cindy Winegarden, and Mike
Woram. Please forgive us if you sent us feedback and we haven’t listed you
here—we still value your contribution.
As usual, the Fox team at Microsoft contributed to this book in many ways, most importantly, of course, by making VFP 7 such a great product. A few members of the team helped out in specific ways, so special thanks to Randy Brown, Gene Goldhammer, Brad Peterson, Jim Saunders, and Mike Stewart.
Kevin McNeish and Alex Weider worked with Tamar and Doug on What’s New in Visual FoxPro 7.0 (also available from Hentzenwerke Publishing), and helped them to understand a number of VFP 7’s new features.
Visual FoxPro’s beta testers are the best. (That’s not just our opinion, by the way. Microsoft thinks so, too.) We all learned a lot from our fellow testers, and appreciate the free-flowing discussions that both shape the product and make sense of the new features. Similarly, among us, we frequent a number of the online discussion groups for VFP, and thank everyone who participates for the in-depth discussions on every facet of Foxpro, thereby helping spread FoxPro information and knowledge.
Finally, thanks to Tamar’s son, Nathaniel Granor, who used his own brand of hacker’s skills to provide us with a cover for the preview of the HTML Help version of the book. Of course, we do have lives outside of FoxPro and all need to thank some people on those fronts. As always, my family has stepped out of the way to enable me to nurture my writing habit. Loving thanks to Marshal, Solomon and Nathaniel.
Tamar
Thanks to my co-authors for pitching in and doing a terrific job on this edition. Thanks once again to family and friends, near and far, for their support. In particular, thanks to Steve, Mom and Dad, Laura, Whil and Tamar.
Ted
Once again, my wife Peggy and son Nicholas had to put up with my spending evenings and weekends slaving over a hot computer. They are the loves of my life and I feel incredibly blessed.
Doug
Thanks to my wonderful husband, Mike, who provided me with love and support while I spent days, nights, and weekends writing. Mike also was a terrific source of expert information about operating system concepts, performance analysis, and hardware. My children, Kelsey and Kerry, have been wonderfully patient through this whole process. And many thanks to my parents for instilling in me a desire to learn and share my knowledge, and for all their encouragement in my endeavors.
della
As with the original Hacker’s Guide, lots of people have made this book better. We’ll start right off the bat by thanking all the people we thanked the first time around. (See the acknowledgments for the first edition for their names.) It was a lot easier (though not as much as we’d hoped) to write this book when we started with 800 solid pages.
Our technical editor for this edition, Doug Hennig, improved the book in many ways. He caught us when we were sloppy or lazy, shared his extensive knowledge with us, and even fixed many of our grammatical mistakes (though we’re still not sure we agree with him about when you need “that” and when you don’t). Jeana Frazier, our copy editor, was all that we could ask and more. She managed to improve our writing without changing the meaning, and was flexible about style issues without letting us run wild.
Steven Black again contributed his expertise, updating his original masterful work on the Builders and Wizards, and letting his zest for the Class Browser and Component Gallery produce an in-depth guide to these complex tools.
A number of people let us know about mistakes and misprints in both the original Hacker’s Guide and early versions of this one. Thanks to Steven Black, Dan Freeman, Chaim Caron, Doug Hennig, Paul Maskens, Hale Pringle, Andrew Ross MacNeill, Tom Piper, Hans Remiens, Brad Schulz, Edwin Weston and Gene Wirchenko. If we left your name out of this list, it doesn’t mean that your contribution didn’t count, only that you’ve caught us in another mistake.
Similarly, a lot of people pointed out VFP problems with words like “you might want to include this in the Hacker’s Guide.” We can’t possibly list all of those people here, but your contributions are appreciated and they all make this a better book.
A few people offered us so much wisdom that we must include their names (or they’ll come after us). Thanks, in no particular order, to Christof Lange, Mac Rubel, Drew Speedie (technical editor for the first edition), Jim Booth, Gary DeWitt, Steve Dingle, Dan Freeman, and everyone else who taught us something, made a point clear, or asked a hard question that made us rethink an issue.
Thanks to the contributors of material for the disk: Sue Cunningham, the Wyoming Silver Fox, Toni Feltman, Jim Hollingsworth, Ryan Katri, Ken Levy, Andrew Ross MacNeill, Guy Pardoe, the late Tom Rettig, and Randy Wallin.
The folks at Microsoft have been remarkably helpful and kind to a couple of people who make a habit of pointing out what’s wrong with their product. Special thanks to Susan Graham (now formerly of Microsoft), Calvin Hsia, Robert Green, Randy Brown, John Rivard, Allison Koeneke, and the hard-working beta team: Phil Stitt, Jim Saunders, Hong-Chee Tan, Steve Pepitone, Dave Kappl and Steve Klem for putting up with our incessant questions and the whole VFP team (including some people who don’t actually work for Microsoft) for giving us this great toy to pound on. Similarly, the DevCon ‘98 speakers helped to plug a few holes in our knowledge and give us some ideas about what you could do with this version of VFP.
Thanks, too, to the other teams at Microsoft responsible for the tools we used to build this book. The Word team produced Service Release 2 just in time to fix some of the most horrific bugs with generating HTML from Word. Despite our many grumblings about its shortcomings, Word is one of the world’s most powerful word processors, and its capability to do Automation made assembly of the book and the HTML Help file a far easier process. Thanks, too, to Word MVP’s and/or CSP’s Cindy Meister, Colleen Macri, George Mair and Chris Woodman, for their help in figuring out how to get Word to do what we wanted rather than what it wanted.
Many people encouraged the creation of some sort of hypertext documentation. HTML Help came along just at just the right time to be used for this version of the book. The HTML Help team has done an incredible job with a product whose specs won’t sit still, treating us to versions 1.0, 1.1, 1.1a and 1.1b in less than a year. Thanks to Dan Freeman and Steven Black for their insistence on its value, Stephen Le Hunte for his incredible HTML Reference Library, and to the wonderful folks on the WINHLP-L mailing list for explaining it all, especially Help MVPs Cheryl Lockett Zubak and Dana Cline, and list contributor Patrick Sheahan for his hack to make the Fonts button appear.
As always, the VFP beta testers taught us a lot, showed us all kinds of strange behaviors, and made the whole process a lot more fun. Thanks, too, to all of the readers of our first version, for the encouraging words and support.
We’re not sure what to say to our good friend, Whil Hentzen, who’s been crazy enough to take on publishing books as a sideline to his software development business. Guess “thanks for everything, Whil” will have to do. Special thanks, also, to Whil’s wife, Linda, who holds it all together and fits right in with the crowd.
Finally, once again, we have to thank the two people who got us into this in the first place, Woody Leonhard and Arnold Bilansky. Perhaps thanks are also due to an anonymous cab driver in Toronto who let us do all the talking the day we met so we could discover we were friends. On a personal level, life doesn’t stop while you spend nearly a year writing a book and we each owe a lot to the people around us. Once again, my family has had too little of me for too long. I owe my husband, Marshal, and sons, Solomon and Nathaniel, more than I can possibly explain for their love, patience (especially while I talked about things they knew nothing about), and help.
As before, my extended family and good friends have been supportive and helpful throughout, as have the people at Advisor.
Tamar
Through the year of turning this crazy idea into the book before you, life went on. Thanks to Ellen, my dear wife, for putting up with it all. You are my strength and my inspiration. Thanks, Steve, for entertaining yourself for nearly a year. Thanks and farewell to my best beta tester, Chloe. Thanks to my coworkers at Blackstone for their suggestions, support and encouragement.
Ted
As with any work of this sort, a lot of people have contributed to this book in many different ways. We’ll take the chance of thanking them by name, knowing we’re bound to leave someone out. Whoever you are, we really do appreciate whatever you did.
Two people have made this a substantially better book. Drew Speedie, our technical editor, kept us honest, pushed us harder, and offered many gentle suggestions based on his own hard-won expertise. Steve Black may know more about Visual FoxPro’s Builders and Wizards than anyone alive except their designers (maybe even more than them, too). Thanks to him, the chapter on that subject is a true hacker’s delight.
Many other folks turned the light on for us or made us look
harder at something or just plain told us what we needed to know. Thanks to:
the Toms - Rombouts and Rettig - for filling the holes in the history of Xbase;
Dan Pollak, beta tester extraordinaire and true Hacker, who figured out a bunch
of stuff we missed; Mac Rubel off whom many thoughts and ideas were bounced,
especially in the area of error handling; Doug Hennig, for helping Ted through
the database container; Harve Strouse who helped Tamar finally to understand
Present Value and Future Value (at least long enough to write about them); Tom
Meeks who made sense of DrawMode and its friends; Nancy Jacobsen, who educated
us about colors and made us think hard about what a user interface should be;
Ken Levy and Paul Bienick for their help in getting us to understand the
Browser and OLE Automation; Andy Neil, the master of multi-user; Brad Schulz,
PrintMaster, for his help on printing issues; Tamar’s father (the retired Math
teacher), who helped her make sense of MOD()
’s weird behavior with negative
numbers; the Visual FoxPro Beta tester community, who pushed and prodded and
poked and showed us all kinds of ways VFP could be used and abused. Thanks to
all of the DevCon ‘95 speakers, each of whom brought their own talents and
perspectives to bear on this wonderful product, and produced wonderfully lucid
sessions with a product still not done.
We have (at least until this book comes out) many friends at Microsoft. Our respect for the group that built Visual FoxPro is tremendous - this is an awesome product - and we thank them all. Special thanks to a few people who helped us in various ways - Susan Graham, Erik Svenson, Gene Goldhammer, Randy Brown, Calvin Hsia.
A few people kindly helped us to fill the disk. Thanks to: Sue Cunningham, Walt Kennamer, Roy L. Gerber, Andy Griebel, James Hollingsworth, Ken Levy, Andrew Ross MacNeill, Tom Rettig, Randy Wallin and Ryan Katri, Rick Strahl, and our friends at Flash, Micromega and Neon.
Our thanks to all the FoxFolk who allowed us to include their records in our sample data.
Dealing with Addison-Wesley has been nothing like the stories we hear about publishers. Our editor, Kathleen Tibbetts, has been helpful and pleasant throughout. Working with Woody Leonhard was a special bonus. Thanks, too, to Arnold Bilansky, who first suggested we take on this book together.
On to more personal thanks. Solomon and Nathaniel have had nearly a year of “Mom’ll take care of it after the book.” Hey, guys, it’s after the book - I’ll take care of it now. My husband, Marshal, has gone way above and beyond the call of duty in taking on extra responsibilities and letting me work on “the book, the book, the book.” He also has an amazing knack to know when I need to hear “of course, you can do that” and when I need the challenge of “gee, I don’t know if you can do that.” I couldn’t have done this without him.
My extended family (Ezekiels, Granors and Fishbeins) have all contributed in tangible and intangible ways. Special thanks to my parents who never once said to me (at least not about work), “Girls can’t do that.”
So many of my friends have helped out by driving carpool, watching my kids, letting me moan, and more than I can’t begin to name names. You know who you are and I really do appreciate it. I owe you all a lot.
Editing a monthly magazine while writing a book while beta-testing a massive product definitely falls into the major league stress category. Everyone at Advisor has been understanding and helpful.
Tamar
This book was only possible through the love and support of my family. My wife Ellen has tolerated more long hours and stress than any spouse should have to put up with. She is the wind beneath my wings. Thanks to son Steve, for letting Dad finish “The Book.” Thanks, too, to my extended family for their support, especially my dad, who knew I could write long before I did.
Ted