Home  |  Introduction  |  Newsletters  |  Programs  |  Feedback






Support DFF

 If you benefit from the website,  in terms of knowledge, entertainment value, or something otherwise useful, consider making a donation via PayPal  to help defray the costs.  (No PayPal account necessary to donate via credit card.)  Transaction is secure.

If you shop at Amazon anyway,  consider using this link. 


We receive a few cents from each purchase.  Thanks



The index page for all Programs on the site?

The DFF Play CD?

Zipped file DFF Play CD.zip contains  executable version of about  75 of the 200+ programs from the site, mostly those I particularly liked or thought would be of widest interest for non-programmers.  The file is rather large, about 20mb..

Anything else?





Search WWW

Search DelphiForFun.org


Not a programmer (yet)?

 That's OK -  the executable version for any puzzle or  game you find here is available for download.  Just scroll down to the bottom of most any description page and you'll find a "Download executable" link. Downloaded programs are in "zipped" format to reduce size and may require an "unzipper" program unless you are running Win XP or later.  Here's a link to a free one. 

Check  out  the Most Popular  Downloads from DFF   (updated weekly)

First time visitor?

Take a look at the Introduction page to see what this site is about

Notes for Teachers


 Friday   April  8, 2005


 Delphi For Fun Newsletter #39  


We're not  too late in meeting our objective of making this a quarterly newsletter.  For those of you  who survived December's  newsletter fiasco (mail list server loop delivered 16 copies to everyone), I hope that this time goes more smoothly.   The big  program  winner since last time has been Cutlist, a program  that  optimizes parts lay out on available material for woodworking project.   In January I responded to a user inquiry  in a Woodworkers Journal online "Ezine"  and pointed readers the  download page on DFF.  More than 4,000 downloads in the next  60 days moved it into top place as the most downloaded  program.  And having lots of users has resulted in a number of bugs fixed and additional features.   

We had our  100,000th home page visitor last month - a milestone of sorts.  Plus  about 300,000 program downloads  in the past 12 months.    A new DFF Library section was established this month to contain units that are used in multiple programs on the website.  This is mainly to reduce my workload when one of those programs changes.  Also the format of the program indices has been entirely automated - they will now be more accurate than when I maintained them manually, but some control over format is lost.   Still a good tradeoff from my perspective. 
If you haven't been to the site in a while, browse through this list of additions and changes and see if you can find something that makes your brain cells bounce a little faster than usual. 


 December 20, 2004:     I appreciate the patience of those subscribers who were inundated with 16 copies of last week's newsletter.  I  ended up with more new subscribes than unsubscribes and most all the emails responses were of the tone : "I really like your site, but  did you know I have received X copies of the newsletter?"     You all took it better than I did.

I noticed in today's "Top 25 Downloads" report than there were 82 downloads last week of the DFF Play CD, a "best-of" compilation of programs.  I've been meaning to update it since there are a number of programs that have been revised and a few new ones that belong there.  I promise to do the update right after the new year, so consider holding off downloading until then, especially if you have a slower dial-up connection. 

December 27, 2004:   

While answering a viewer's question recently, I had a chance to review the original Eight Queens Plus code posted here 3 years ago and realized that the traditional version of the puzzle was not included.  I modified the 3 versions today to allow users to select whether or not a queen can sit on a diagonal.  So the Plus 3 version will now display not only two unique solutions for the "Plus" puzzle but also the 12 unique solutions for the traditional version of the puzzle.   Each solution has 7 additional variations (rotations and mirrors) which are also displayed.   How does 8 versions of 12 unique solutions square with the 92 solutions found by Eight Queens Wirth and others?  It turns out that solution #8 is unchanged after 180 degree rotation, so there are only 4 unique versions of this solution, reducing the total potentially unique solutions from 96 to 92.    Hooray!    



 January 15, 2005:  


I took a little time off to play with grandkids over the holidays, but apparently you viewers did not,  so I'm a little behind on fixes, never mind the new projects underway.    If your email is over a week old and hasn't been answered with at least an "I'll look into it", consider writing again.  

I did post Version 2 of my Cutlist program today.   The program plans the best way to cut a set of rectangular parts from a given set of supply material.   Today's fixes include:   


  • The European comma used for decimal point did not work properly when files were saved and restored.  I think it is working now, but I have a hard time testing it here.    

  • The material editing process has been improved, now  pops up a menu to let users modify, insert, delete, rotate, or duplicate parts.

  • Fixed some sort errors to make the solving process work better (i.e. more like I thought it should work).  

      Thanks to Jasmin Bajric for the Cutlist bug reports and suggestions.  

January 20, 2005:  Here is a MatchMerge  program which merges two text files in alpha text sequence and optionally saves the merged records in a new file.  Options are provided  to sort input files if they are not in sequence, and to eliminate duplicate records in the output file.     

January 23, 2005:  I finally posted the updates to DFF Play CD this afternoon.   This is a compilation of executable versions of 75 or so of our most popular programs.  The initial version was posted about 6 months ago.  Programs are categorized as Science, Math,  Two Player Games, Playable Puzzles, Solvers, and Tricks. 

This is version 2 and has the following updated and added programs:


 I put in hyperlinks to the description pages in the above list , in case you are interested in  only one or two of the offerings.   The DFF Play CD files are downloadable as  DFF_Play_CD.zip, about 20 megabytes.   The files may be extracted to a disk folder  and run from that location or (as I originally intended) copied to a CD to hand out to the grandkids or anyone else you want to expose to math, science and the fun of learning!  


January 30, 2005:  We'll squeeze in one more update before the 1st month of the new year ends.   I have rewritten the divide procedure used in our Big Integers unit.  It's now between 10 and 10,000 times faster depending on the problem.   Here's a link to the Long Division test program that I wrote to compare old and new timing and results.  I also have a link there to the best paper available describing long division algorithms - essentially 23 pages written by a distinguished professor of Computer Science to describe what every 4th grader learns how to do.  And which I couldn't implement in code after several days of effort until I found Dr. Hansen's paper!    The human brain is a marvelous thing! 

The new Big Integer unit consolidates several versions that had evolved as I used it in other projects.  The  Big integers link above identifies the programs which have been recompiled and reposted using the new unit.    As I was in the middle of this, viewer Hans Klein sent me some interesting additions (and a couple of corrections) to the original Big Integers unit.   If the terms "ModPow", "InvMod", "Miller-Rabin", "Fermat's Little Theorem", "Carmichael numbers", or "RSA encryption" mean anything to you, you may want to check out the additions in the new version.   Thanks to Hans for the contributions and for your efforts in testing UBigIntsV2

Feb  5, 2005:  Here's a clever little puzzle program to amaze and amuse you.  The Mindreader can identify the symbol you are thinking of with surprising accuracy



February 8, 2005:  Viewer Phil had written asking how to insert up or down arrows in the sort column header for a sorted string grid.  Seemed like a good idea to me so I modified the StringGrid Quicksort program over in Delphi Techniques to do that.   

February 20, 2005:  I recently posted a notice of availability of our Cutlist program in response to a user's question in the Woodworker's Journal "Ezine".   A "Cut List" or "Cutting List" shows the how to cut a required list of parts for a project from an list of available material.  Apparently, many of the down-loaders actually used it to create lists for their projects!  And wrote me asking how to print results.  That was one of those features planned but never implemented.  Cutlist Version 2.1 posted today adds that  as well as another requested feature - the ability to name the parts in the Parts list.      


February 22, 2005:  Wow! I just updated our Most Popular Downloads report and see that there have been 2200 downloads of Cutlist  in the last 30 days - most popular by far!  Alert users have found a couple of minor bugs which were corrected last night ("Rotate" rotated the part above the one selected one,  attempts to edit the the "field names" line in the Parts list caused a fatal error).    Programmers need users - otherwise how would their code ever get tested?

February 27, 2005:  I'm developing simulation program for an aircraft instrument simulator called the Horizontal Situation Indicator for Mac, an Air force pilot who programs in Delphi just for fun.  Mac  plans to convert an old DOS "Fix-to-Fix" navigation training program to Delphi during his next deployment.   Here is a Wind Triangle demo program written just to make sure that I understood the concepts and mathematics for planning a flight in a specific direction when the wind is blowing.   

March 3, 2005:  An international user pointed out that the Sample projects included in the Cutlist downloads would not load properly because of the decimal point difference.  A fix in  January generalized the decimal separator field so that  files created in Europe could be read there.  It never occurred to me that my  samples, which already contain the "proper" decimal point (.), would not read properly in Europe.  Cutlist Version 2.1.1, posted today, corrects this problem by identifying the decimal separator of the creating system in each project file. All of the sample project files have been recreated with this information.    I also corrected a problem which added an extra blank space at the beginning of each part name each time the project was saved.  It is good to have real users out there helping to make things better!  

March 6, 2005:  I have been recompiling programs that use the "Combo" unit to synchronize them with a forthcoming new and improved version.  Combo contains the code that generates combinations and permutations used in many of our puzzle solving programs.  The new version will have many new functions but  the first step was to ensure compatibility with existing programs.   In the process I have uncovered a few bugs not related to Combo usage.   Here is a revised version of Countdown Plus, a program that emulates the mathematics of a British TV game show (Countdown) and which requires players  form expressions that evaluate to a given value.  I found many range checks and overflow errors which have been fixed.   As a test of the fixes, and "just for fun", I created a few expressions that evaluate to the current year (2005) using all of the digits from 1 to 9.    


10 Expressions that = 2005



 March12, 2005: CutList continues to increase it's lead as the  most popular download from DFF.  Which is good news and bad news, because real users find real problems (good because they have been found and fixed,   bad because thousands of downloads may exhibit the problem ).   CutList Version 2.1.2 recently posted finally corrects the decimal separator problem which appears with European users where our "decimal point" becomes their "decimal comma".   There was also a problem when items were added to the material supply list.  The origins of the added pieces  were not set properly which messed up the solution displays.  Saving and reloading the project corrected the display.  Now added pieces will display correctly even before saving the file.   

I decided to post the tips and techniques used to handle the decimal separator problem over in the Decimal Techniques section.  International Decimal "Points"  demonstrates the techniques  and includes a replacement for the "Val"  procedure.  Delphi's version is old, old, old and knows about nothing but  a dot  "." as a decimal separator.    

Finally, today I posted a couple of Beginner's programs in  Delphi Techniques.  Over the years, a number of short programs have been written in response to specific user requests, trying to lead them in the right direction without doing their homework assignment for them.   Two recent ones illustrate how to draw on and modify a TImage canvas (a Parking lot in this case) and how to use TChart to plot a set of function values.   Each program has less than 100 lines of code and  are available from the new Beginner's page.      



March 20, 2005:  I spent most of the week working on Project Euler problems, down to three remaining unsolved.  It is addictive, and somewhat frustrating for a "smart guy" to see that 20 other people have solved a problem that you haven't cracked (yet).  But oh, what a rush when that "Congratulations" message pops up!   One by-product of the work is today's posting over in the Math section;  a demo of Dijkstra's Shortest Path graph searching algorithm.  It's a clever and efficient way to find the cheapest (shortest) way to get from one place to another if you know the price (distance) between all of the intermediate way points.   It can solve graphs with several thousand nodes and connections in under a second!   To help understand the algorithm, the demo even describes the steps as it finds the desired path for a small randomly generated graph.        





March 28, 2005:  An alert viewer found  that the input  integers to Countdown Plus problems were limited internally to the range of -128 to +127, although larger values were accepted and displayed in the result as though everything was OK.  It wasn't, but it is now.   Input values can now be in the range -999 to +999 and target values in the range -9999 to +9999, for both to the user and the program.    

March 31, 2005: The site has been reorganized somewhat this week in order to implement a new DFF Library section of the website. The library will hold non-visual units that are used in multiple programs here. Finding and updating all of the zipped source files when one of these general usage units changed was getting to be a hassle. We'll be migrating these units to a single library zipped file over time. It will require a separate one-time  download if you want to compile the programs, but I'll  identify those cases clearly.  The first unit moved to the library is TIntList, the Integer List component. 

In another step to simplify maintenance,  all indices of programs are now computer generated.  That required some changes to the navigational structure of the site.  Use the feedback link to let me know if you see any weird pages (one of the symptoms if I messed up is a missing page title, there is also the chance that some pages that were never completed have been indexed). 

April 1, 2005:  Many themes and shared borders are missing in the Programs section today.  I would suspect an April  Fool's day joke, except that I was seeing "Insufficient Disk Space on Server" errors earlier today while doing a minor update.  We'll see if it magically fixes itself by tomorrow.

 April 5, 2005:  An enhanced version of the TComboset unit was posted today as the 2nd addition to our DFF  Library.  Thanks to Charles Doumar for the added functions - even if I don't know why or when to use combinations in Colexicographic order.   Here's a link to the Comboset test Program.    It is a compatible replacement for our  Combo unit which is used in many DFF programs.    

April 6, 2005: 

Here's Version 2  of our Solar Position program which calculates sunrise & sunset times, well as the position of the sun any given time for any location on earth.  "Analemma" plots are also produced.  An Analemma is  the figure traced in a year if the shadow tip of a fixed stick were plotted at the same time each day for a year.

 There were a few minor bugs to correct, plus a few user suggested enhancements, plus a new experimental solar position plot  (June 21 solar path at 30 North shown at left . )    


Gary Darby

 Darby's Formula for Success:   Will Do = Want to + Can do + How to .
                                                (Accomplishment = Motivation + Ability + Knowledge).


To subscribe or unsubscribe from this newsletter, visit http://delphiforfun.org/newsletter.htm

109,000 home page visitors since Sept 2000.     279,000 programs downloaded in the past 12 months!