Drew Speedie
  Drew Speedie develops Visual FoxPro applications and provides consulting and technical direction on FoxPro projects at Vision Data Solutions, Inc. He is the chief architect of the Visual MaxFrame Professional application framework and is also part of the team that develops VDSI's VFP and VMP training classes. For the past several years, Drew has been a contributing editor to FoxPro Advisor Magazine. He has been a judge for the Visual FoxPro Excellence Awards each of the years they have been awarded. Drew is a frequent speaker at various international FoxPro events. Drew is actively involved with the Phoenix area user group, El Zorro and has been an inspiration and advisor to Southwest Fox.
 
  What Your Mother Never Told You About Instantiating And Destroying Forms

Skill Level: Something for everyone

Everybody knows how to instantiate and destroy forms, right? Yes, but there can be much more to it than initially meets the eye, especially when you are designing a form class hierarchy to abstract consistent behaviors inherited by form instances. For one thing, all sorts of inconsistencies await you, including DataEnvironment events and other private data session issues. It's easy to inadvertently disturb the native sequence of instantiation events, with consequences that are hard to debug. Object reference cleanup must be handled as the form closes/destroys. In this session, Drew explains many inconsistencies and gotchas, with alternatives, workarounds, and practical suggestions. This session consists of explanations and demos, including one for a simple but powerful strategy for inter-form communication via object references. You will learn techniques you can implement right away in your own applications.

Attendees should have experience creating forms in VFP.
   
  Programming To Two New Events in VFP 9

The BINDEVENT() function was introduced in VFP 8 for binding VFP properties, events, and methods to delegate code. That feature supports better encapsulation, looser coupling, and simpler maintenance, especially when designing composite classes. In VFP 9, the BINDEVENT() function has been expanded to support binding to Window Message notifications from the Windows operating system. Now you can bind VFP code to events that Windows sends to VFP objects that have a window handle (hWnd), like _VFP, _Screen, and the base class Form. This session explains this new functionality, and features several examples including an abstract event-handler class and concrete subclasses. The demonstrations show how you can hook your VFP code to Windows system events like when the user changes the Theme, the desktop resolution, leaves/returns to your VFP application, unplugs his laptop, etc.

In the development environment, the MENUHIT and MENUCONTEXT IntelliSense scripts expose menu hits and shortcut menus so that you can replace them with your own code. This session demonstrates an easy way to set these scripts up, and shows examples of how you can put them to use.

Attendees should have experience creating VFP forms and controls; a basic understanding of the VFP 8-style BINDEVENT() is helpful.