Home ] Feedback ] Search ]

Tools and Utilities             



This Page is still under construction. Please Check back for updates.

Getting the Most out of IntelliSense presented by Andy Kramek on FoxCast Webinar on 4/21/2005

The FoxPro implementation of Microsoft’s IntelliSense technology was introduced with the release of Version 7.0 and went far beyond the capabilities of other languages. In VFP, IntelliSense is a fully customizable and extensible productivity tool which has been further enhanced in Version 8.0 and Version 9.0. This session, shows how to tap into the IntelliSense engine and how begin to use the extended capabilities of VFP IntelliSense to assist your daily development work.

The runtime features and memberdata extensions added in Version 9.0 have been covered elsewhere (Toni Feltman of F1 Technologies has written about the at run time implementation, and Doug Hennig of Stonefield has covered memberdata extensively) and so these features are not included in this session.

For details of the FoxCast Webinar program (where you can download complete audio-visual presentations by Andy and other well-known speakers) see www.foxcast.org

Implementing Design Patterns in Visual FoxPro as Seen in Frankfurt, Germany 2003

Design Patterns have long been a topic of interest to Visual FoxPro developers, but one of the biggest problems associated with them is that good examples of how and when to use them in Visual FoxPro are hard to find. In this session Andy addresses a number of typical development problems and shows how to implement the relevant Design Pattern to help solve them. Starting with the Bridge, he develops the theme by illustrating the Strategy, Chain of Responsibility, Decorator/Adapter and Wrapper patterns in the context of specific development issues. A paper accompanies the session and samples written using Visual FoxPro illustrate how you can implement these patterns plus the "Mediator" pattern!) in your own work.

I Never Met a Data I Didn't Like as Presented by Marcia G. Akins at Advisor Devcon 2001 and Essential Fox 2004

This session discusses the benefits of data driving your application so that, when circumstances change, you minimize the need for code changes. It doesn’t matter if you are developing desktop, client-server, or distributed applications to run on the world wide web, your application will be more extensible and more maintainable if you data drive its key components. Some processes lend themselves very well to data driving: data import and export are two that leap to mind. This session includes examples of how to data drive both. You will also see how to use metadata to implement strategy and factory patterns, while the final example demonstrates a data driven Lister class that produces HTML on the fly from data in the middle tier. ( Many thanks to Steven Black for his generosity and brilliant work in developing the original Lister, upon which the class in this session is based. )

Creating Graphs in VFP as Presented by Marcia G. Akins at Essential Fox 2002

It has been said that a picture is worth a thousand words. This is especially true when analyzing trends in financial applications. Viewing the data in a graphical format is usually more meaningful than merely reviewing a bunch of numbers in a spreadsheet. In this session, we will explore several mechanisms by which we can generate graphs to be displayed on forms or printed in reports.

How to Put a Combo Box in a Grid as Presented by Marcia G. Akins at GLGDW 2000

This session covers all aspects of using combo boxes inside grids. The combo box is a very useful control when you need to limit the options that a user may select from, but it is not easy to use well in any situation, and inside a grid it sometimes seems to acquire a life of its own. I will show you how to add combo boxes to your grids and how to make them display and behave properly. We will also cover how to use a view as the grid's RecordSource as well as the easiest and most effective way to use an updateable cursor as the grid's RecordSource. The session finishes by showing some really cool things you can do with a combo in a grid.

Office Automation With VFP as Presented by Marcia G. Akins at Advisor Devcon 2002 and GLGDW 2002

Visual FoxPro is a powerful development tool, but it can't do everything on its own. An application may need to send e-mail, display graphs, send form letters, or perform complex calculations. In these cases, you can use Office automation to get results efficiently. In this session, I'll show you how to use Office automation in your VFP application and how to do so as painlessly as possible.

Class Based Data Management as Presented by Andy Kramek at Advisor Devcon 2001

In the modern business environment access to data is crucial for any application, however, there many different databases in common use. Thus a common problem is how to write an application that can access different data sources without requiring different versions (with all the concomitant maintenance issues) of the source code. The Data Classes illustrate how to implement an Application Programming Interface (API) that enables application code to be written without requiring specific references to the data store. The consequence is that a single suite of source code can access data stored in different databases as required.

The attached version of the classes runs under versions of Visual FoxPro from 6.0 (SP5) or later. These classes have been placed in the Public Domain, with no warranty or guarantee of any kind, and are intended only to illustrate a methodology for accessing data. They may be used ‘as is’, or modified, providing original authorship is acknowledged, but the authors accept no responsibility for any use, nor do the authors maintain or support the Public Domain version of these classes in any way.

To find out more about implementing the Data Classes contact us at: admin@tightlinecomputers.com

A Guide to Buffering and Transactions in VFP by Andy Kramek

A White paper that attempts to de-mystify buffering and transactions in VFP. Examples include how to create generic code for saving data and a class for handling update conflicts in such a way that most conflicts can be resolved automatically. The code is usable in VFP V6.0 or later.

Designing a Database as Presented by Andy Kramek at Southwest Fox 2004

In this paper (and accompanying presentation) Andy examines the issues associated with designing a database. This paper has nothing to do with creating tables, or normalizing data, instead it focuses on the larger issues of classifying data, identifying relationships and choosing the correct type of table. An overview of rule placement completes the paper.

Using Microsoft ActiveX Controls (Updated) as Presented by Marcia G. Akins at Frankfurt Devcon 2007

ActiveX controls have been around for quite a while now, and are quite widely used by developers working in other languages. However, they have never been really popular among FoxPro developers. This is a shame because there are some very good ActiveX controls available, completely free, that provide useful functionality with little or no effort. With Visual FoxPro 9 SP2, this functionality gets even better because of the free controls very generously provided by DBI. In this session, Marcia shows you how you can leverage some of these standard controls as well as the free DBI controls to extend your Visual FoxPro applications.

Modeling Hierarchies as Presented by Marcia G. Akins at Southwest Fox 2007

Being able to model parent - child - grandchild relationships in Visual FoxPro is a task with which we developers are quite familiar. The traditional approach has been to create parent, child, and grandchild tables that are linked using foreign keys. This approach works quite well when the hierarchy is symmetrical. However, it is inflexible and falls apart when the hierarchy is asymmetrical (that is, a given branch may skip a level in the hierarchy). In this session, Marcia demonstrates an alternate approach to modeling hierarchies that is much more flexible because it separates the data from the structure of the hierarchy.

Event Handling in Visual FoxPro as Presented by Marcia G. Akins at Frankfurt Devcon 2005

VFP 7 gave us the ability to implement interfaces. This, together with the EVENTHANDLER() function, allowed us to run our VFP code when events fired in automation servers. Successive versions of Visual FoxPro have extended the capabilities of developers to interact directly with the product culminating, in Version 8.0, with the introduction of the BINDEVENT() function which gives direct access the VFP Event Model. Version 9.0 has exposed even more of Visual FoxPro’s event model and allows even greater control and interaction. In this session Marcia shows how you can put the event handling capabilities of VFP to use in your applications.

QuickBooks Automation as Presented by Marcia G. Akins at Soutwest Fox 2007

Gone are the days when we can develop an application using Visual FoxPro alone. Users today are much more sophisticated and expect to be able to use their favorite tools from within the application when it is appropriate. More and more applications are exposing much of their functionality through components which can be automated, including the popular and successful Intuit product "QuickBooks". Your users will thank you for realizing that their time is valuable too when you can automate QuickBooks and make sure that they never again have to enter the same data twice.

Where Does the Code Go? (The Do's and Dont's of Good Class Design) as Presented by Marcia G. Akins at Advisor Devcon 2001

When sitting down to design a new class, how do you decide what methods to use, what new methods you need and where to actually put the code? Like many things in VFP it’s actually easier than you may think – especially if you follow the rules. The trick, of course, is knowing the rules – and that is what this session is about. Here are the basic rules, and some examples, of good class design.


Home ] Feedback ] Search ]

Send mail to webmaster@tightlinecomputers.com with questions or comments about this web site.
Last modified: August 25, 2003