Utilities from the Problem Solver

The best thing to happen to Visual FoxPro
since baked bread and GenScrnX. Thanks to Steven Black.
Download FoxProWiki.chm, (March 1st, 2004, 14 Mb CHM file)
This code is a replacement for the code in the Developing and Debugging Visual FoxPro COM servers
article. This code makes use if the Windows Running Object Table so we can de a
GetObject() to reach the required object. Thanks to Christian
Ehlscheid for showing me this approach.
Download source_xp.zip
(89 Kb ZIP file)
ParseLocals is a Visual FoxPro source code parser that is designed to detect omissions in variable declarations. It will detect variables that are declared in a function or method but that appear not to be assigned any value and it will detect variables that are assigned a value but are not declared.
The main reason for writing this parser is to combat the subtle effects that may be caused by forgetting to declare variables as local resulting in the default private declaration and the possibility that they are changes in another function.
I have been using this for quite a while now and believe that, even though it isn’t perfect, it is good enough to release. If you find any syntax that is misses please let me know so I can update the parser.
Update 7 Feb. 2007. Thanks to Kurt Graßl, Peter Crabtree and others for the changes.
Download ParseLocals.zip (9 Kb ZIP file)
VFP-Frame is a shareware Object Oriented
Application Framework for use with Visual FoxPro. This framework
was designed and build by Maurice de Beijer after studying
several C++ frameworks and design patterns. Partial source code,
a demonstration application and a 60+page manual / reference
guide are included. This framework has been tested, and works
without change, with Visual FoxPro 3, 5 and 6.
I have sold VFP-Frame to a company called FairTree and it is now called FairFrame. To download the
latest version visit their web site.
This generic pick list can be used both
inside VFP-Frame and outside it. It use the DBC to check if the
passed control source is used as a foreign key in a relation and
if so creates a cursor of the possible records from the main
table. It doesn't matter if the relation if set to ignore,
cascade or restrict. It does need a relation between an index tag
on the passed control source, not on some function containing it.
If the main key is filtered this filter will be used in the
creation of the cursor of possible records. The key value is
always added to the cursor as __PK__ but the standard pick list
form always set this column to 0 pixels wide. To allow the user
easy searching the pick list will filter on any character field
where the user types any data. Freeware, all feedback will be
appreciated.
Download PickList.zip (48 Kb ZIP file)
This zip file contains a routine that
allows you to log all changes in one or more tables in a database.
A second procedure is included to allow you to do a rollback of
changes made to a database. To be able to do a reliable rollback
all tables should be logged. Freeware, all feedback will be
appreciated.
Download Logger.zip (5 Kb ZIP file)
This zip file containes a class to make
forms resizable and allow the developer to configure each control
to react as specified. The vertical and horizontal actions are
specified independenlty. Possible horizontal actions are to
anchor to the Left, Centre and Right or Resize. Possible vertical
actions are to anchor to the the Top, Center, Bottom or Resize.
Updated to look more like the window
resize control.
DownloadResizer.zip (8 Kb ZIP file)
This zip file containes a class to allow
you merge a cursor with an HTML template document. The merge
class will try to locate a repeating segment in the HTML template
and repeat this for every cursor in the current alias. A
repeating segment can be a table, a bulleted list or a numbered
list. In the case of a table the block from the last header <TH>
element to the end of the table </TABLE> element. In the
case if either a numbered or bulleted list the repeating block is
everything from the first list element <LI> to the end of
the list element </UL> or </OL>. You can embed Visual
FoxPro expressions by placing them between <%= and %>
markers. Everything between the markers is evaluated and the
result is substituted in its place.
Updated may 17, 2000
Added a check for a NoScan attribute in a
table or list tag so a template can contain a header table which
is ignored during the scan action. Added new templates to
demonstrate this capability.
Download HtmMerge.zip (32 Kb ZIP file)
This zip file contains programs developed
by Maurice de Beijer to generate the faq sheet on my web site. It
uses the HtmlMerge utility to merge a HTML template (tmpl_faq.html)
with a Visual FoxPro table (FaqData.dbf) resulting in faq.html.
The template html document also contains the javascript code
needed to show or hide the items as needed.
Download FaqSource.zip (17 Kb ZIP file)
This zip file contains a program developed
by Maurice de Beijer to allow you analyze a coverage log file.
Instead of looking at the total time for each statement, as most
utilities do, this utility calculates the actual time a statement
took. That means that the time doesn't include the time spent by
code that is the result of the statement. The result is that you
can see the cost of a ThisForm.Refresh() with all the code that
is executed in the Refresh events.
I use this as an addition, not a
replacement, for the other ways of analyzing a coverage log file.
I have found it very useful when optimizing common small routines
that are called from a lot of different places, making it
difficult to see the total amount of time spend in the routine.
It has also enabled me to identify some "problems techniques"
in Visual FoxPro that appeared to be perfectly reasonable but
turned out to be slow.
Download cover.zip, (2k ZIP file)
Back to Top
|