This document is a simple explanation of the DTUI forms included
in the dUFLP library.

Basically I felt that a user trying to enter data against a
TimeStamp field (new to the VdBASE 7 table format), or perhaps
a developer is using a DateTime() function call (this and the
TimeStamp field are really interchangeable), can get a bit
confused -- the format is very explicit, and a nicer UI method
of getting the data might be helpful ... 

So I created a couple of forms that are designed
to be modal dialogs called from your own data entry forms.

There are two forms (and a third is included to show how to hook
the other two up to your own form), because I decided to try 
doing this in a couple of different ways:

   ---------
   DTUI1.WFM
   ---------
   This is based loosely on the way that a Palm Pilot's DateBook
   handles the time -- hours and minutes on a Palm Pilot are
   in listboxes, and the minutes are in increments of 5 
   minutes (0, 5, 10 ...). I added seconds because the TimeStamp
   field (and DateTime() function) return seconds as part of
   the value, but these are also in increments of 5.

   The calendar is using the second of two calendar controls
   I've created -- the first one uses an ActiveX control,
   but I decided after some thought to try to do my own
   completely native calendar control -- and succeeded
   (kenCalendar2.CC) -- this is what's used here.

   The calendar control is completely self-contained, which
   means that when the calendar gets changed, the "current
   date time value" does not get updated, because the
   calendar doesn't actually talk to it. This is why there's
   a refresh button -- it grabs the value from the calendar,
   and the current time string, and puts it all together into
   a value that can be used as a return value from the form.

   SO -- the components on the form:

   Calendar -- select the new date, there are navigation
   buttons at the bottom for year and month (Previous Year,
   Previous Month, Next Month and Next Year); and a "Today" 
   button which brings you to the current date. Click on the 
   day of the month, and it changes color to show the
   current one.

   Time -- select the hour, minutes and seconds from the 
   listboxes. (Note that the time that is in the current
   value is shown in the listboxes, but rounded to the 
   nearest '5' minutes or seconds ...)

   Original Value -- this shows what was passed to the form
   (if anything -- if a blank value was passed, the form
   should grab the current DateTime() and this is what
   will appear).

   Current Value -- starts out the same as the original one:
   However, if you click the Refresh button it gets updated.

   OK button: stores the current value to:  _app.DTUIValue

   Cancel button: stores the original value to: _app.DTUIValue

   ---------
   DTUI2.WFM
   ---------
   This form is based on the first one, but rather than using
   listboxes, I replaced them with entryfields. That's really
   the big difference. The entryfields have error checking
   to ensure that correct values are entered. To handle the
   AM/PM problem, I threw a couple of radiobuttons on the
   form, so that you didn't have to worry about 24 hour time 
   (most people don't think in 24 hour time, although 
   as a developer you could modify the code, remove the radio
   buttons and change the allowed values ...).

   Everything else works just like shown above, except that
   the minutes and seconds are not rounded off ...


   ------------
   TESTDTUI.WFM
   ------------
   In order to show how to hook either of these forms up to 
   your own data entry forms, I created a simple test form.
   This should be run somewhere that you don't mind a new
   table being created, and all that. It will create a simple
   test table, and allow you to change the value either
   by hand, or by using the buttons ... 

Enjoy -- if you have comments, send them to the usual place
(noted in the README.TXT for the dUFLP library ...).
