NOTE: These are the older (original DL Components that were distributed 
as DL DateEdit components). They are functionally equivalent to two of the
components in DL Components version 5, although there have been some 
enhancements to the newer set. This set is provided for those users 
still developing or maintaining applications in Delphi 1.


The DL DateEdit Components Version 2.00
========================== ============


Contents
 - Overview
 - Installation: Components 
 - Installation: Help
    - A Note About On-Line Help
 - Using the Components
    - Properties
    - Methods
    - Events 
 - Compiling the Demos
 - Trouble Shooting
 - File List
 - Getting Help
    - Mail
    - Email
    - Web Site
 - Bugs & Typos 

OVERVIEW
========

The DL DateEdit components consist of

* TDLDateEdit   a TEdit replacement that is specifically designed to
                handle date entry. It applies validation and enforces
                4-digit year display. It converts 2-digit year values
                into 4 digits.

* TDLDBDateEdit is a data-aware version of TDLDBDateEdit.

The DL DateEdit components provide you with the following:

* Built in pop-up calendar (similar to Lotus Notes and MS Money)
* Either keyboard entry or calendar entry can be disabled
* Calendar can be opened programatically when necessary
* Calendar supports mouse and keyboard support
* Validation of dates
* Complete control over invalid date error messages
* Year 2000 readiness (ensures 4-digit year entry, and 2 methods 
  of interpreting 2-digit year values: cusp year, and century default)
* User selectable date format
* Customisable calendar (select which day the week starts on, the
  colour of dates occurring on weekends, whether the calendar is 
  filled or only includes the current month)
* Easily customisable to different languages and date formats
* Customisable calendar button
* Offers three events for the developer to trap

Both the TDLDateEdit and TDLDBDateEdit components are virtually identical
in appearance, giving a consistency to your applications. The TDLDateEdit
controls you use in dialogue boxes will act just like the TDLDBDateEdit
components attached to your date fields.


INSTALLATION: COMPONENTS
========================

Copy all dlde16.* files to the directory of your choice, 
for example: c:\dc

Start Delphi then follow these steps:

 1.  Open the Options menu and select Install Components...

 2.  Click the button labelled Add

 3.  Click the Browse button and locate the directory where you
     stored the DL DateEdit components

 4.  Set the file type to *.DCU so you can see the file DLDE16.DCU

 5.  Select DLDE16.DCU then select OK twice to close all dialogue boxes.
 
When Delphi has finished compiling the Component Library, you will
see the two components on a palette named 'Addons'.
 

INSTALLATION: HELP
==================
This version of the DL DateEdit components include context-
sensitive on-line help. While you could simply open the help files 
directly when you need them, it is usually preferable to install the
help into Delphi; here's how:

 1.  Using File Manager or Windows Explorer, locate the file named 
     HELPINST.EXE; this is usually found in c:\delphi\help. (If you
     cannot find the file, it is possible that Delphi was not installed
     completely)

 2.  Run HELPINST.EXE

 3.  From the File menu, select Open.

 4.  Browse to the directory where the Delphi executable is located
     (this is usually c:\delphi\bin), and select the file DELPHI.HDX

 5.  From the Keywords menu select Add Keyword File...

 6.  Browse to the directory where you stored the DL DateEdit components
     select the file named DLDE16.KWF, and click OK to close the
     dialogue box

 7.  From the File menu, select Save, then Exit. 


A Note About On-Line Help
-------------------------
The first time you select help when working with the DL DateEdit components,
you will be prompted with the message:

"Cannot find the DLDE16.HLP file. Do you want to try to 
find this file yourself?"

Answer Yes to this, then browse to the directory where you stored 
the components. In future, selecting F1 while working with the 
DL DateEdit components will find the help file without having to 
repeat the above process.


USING THE COMPONENTS
====================
The on-line help files will provide you with full details on how to
use the components. However, the following is provided to give you a
head start:

Properties
----------

AllowKeyEntry:	When set to False, this property will prevent and end-user
		from using the keyboard to enter a date; they are forced
		to use the calendar. Note that they can still use DEL
		to clear the contents of the field. Note that AllowKeyEntry
		and CalendarEnabled cannot both be False.

CalendarEnabled: When set to False, the calendar component is inaccessible
		to the end-user, and date entry must occur via the keyboard.
		You will generally only use this property to hide the
		calendar button when a field is in a read-only state. Note 
                that CalendarEnabled and AllowKeyEntry cannot both be False.

CalendarFillPage: When set to True, the last few days of the previous month
		and the first few days of the next month are used to fill
		the entire calendar page. When set to False, only the
		current month can be seen in the calendar.

CalendarWeekendColor: This property takes a normal TColor value, the value
		being used to determine what color dates occurring on 
		Saturday and Sunday are displayed in

CalendarWeekStart: This property determines which day the week is considered
		to start on. By default, wsSunday is used. However, if you 
		want the weekend dates to appear next to each other, you
		may prefer to select wsSaturday or wsMonday instead. You may
		choose any day.

CuspYear:	This property is used to determine how 2-digit year values
		are interpreted. If the 2-digit year value is less than 
		CuspYear, then the year is assumed to be after 2000; if the
		2-digit year is equal to or greater than CuspYear, it is 
                assumed to be in the 1900s. The default value is 30. This
		property is ignored if UseCentury is True.

Date:		A run-time only property representing the Date stored in 
		in the TDLDateEdit or TDLDBDateEdit component.

DateFormat:	A string value representing the format the date is displayed 
		in. All date formats include 4-digit years in keeping with
		current Year 2000 methodologies.

ErrorMessage:	This property is a string that you can use in place of the
		the default error message. Add %s to the string to include
		the users invalid date in the message.

ErrorMessageTitle: This property contains a short string that is used as
		the caption for the message box if the ErrorMessageType
		is set to mtWindows.

ErrorMessageType: This property determines how the component deals with
		invalid dates entered by the user. mtDelphi and mtWindows
		types will cause a dialogue box to be displayed; mtBeep
		causes a warning beep only to be sounded; mtSilent prevents
		any warning from being issued. If you choose mtSilent
		you may wish to add your own error messaging or handling
		to the OnInvalidDate property.

Glyph:		The Glyph property allows you to select a bitmap of your
		own to use in the calendar button. Generally, you will pick 
		an image with dimensions less than 16 pixels x 16 pixels. 
		However, if you have sized the TDLDateEdit or TDLDBDateEdit
		fields larger than normal, you may be able to get away with
		a bigger image. When using this property, you must also
		set the GlyphNum property.

GlyphNum:	This property is used to tell Delphi how many individual
		images are contained within Glyph. GlyphNum can take a 
                value from 1 to 3. All images in the Glyph should be the same
		size and arranged horizontally from left to right. The first 
		image should be the standard button image, the second the 
		'disabled' state, and the third the 'Down' state.

GlyphType:	This property determines whether you use a custom Glyph
		or one of the 6 in-built glyphs, or none at all. When set
		to anything other than gtCustom, the Glyph and GlyphNum 
		properties are ignored.
		
UseCentury:	When set to True, this property will cause all 2-digit
		year values to be interpreted as occurring in the
		current century.
	
Methods
-------

OpenCalendar:	This method allows you to open the calendar programatically.
		For example, you may want to have the calendar open 
		automatically when an end-user enters a particular 
		DL DateEdit field; this method will enabled that.

Events
------

OnCloseCalendar: This event occurs just before the calendar is closed.
		
OnInvalidDate:	This event occurs when a user enters an invalid date, 
		just before any ErrorMessage warning is given

OnOpenCalendar:	This event occurs immediately before the calendar is
		opened.


COMPILING THE DEMOS
===================
The file DEMO16.ZIP contains two demo projects. Note that before you try 
the demos, you must have the DL DateEdit components correctly installed. 
The demos consist of the following two projects:

DEDEMO.DPR	This project demonstrates the properties of the
		TDLDateEdit component. Simply open the project in
		Delphi and select Run. Most of the controls on this form
		manipulate the properties showing you instantly how
		they affect the component. You can also experiment
		with the properties of the component at design-time.

DEDBDEMO.DPR	This project demonstrates how the TDLDBDateEdit components
		can be used in a database application. Again, you should be
		able to simply open this project and select Run. 

		If you receive an error message on opening the project, 
		it is because the TTable component could not find DEMO.DB
		file. The demo program will reset the DataBase property of
		the Table at run time, so you can safely ignore the error
		message. If you want to experiment with the demo in
		design-time, you will need to set the Database property of
		the TTable component to the directory where you have stored
		the demo source code.


TROUBLE-SHOOTING
================

'...Unable to find component...'
Sometimes Delphi will display a message like this when adding the 
component to the palette. This is usually because the 'Search Path'
in the Install Components dialogue box contains too much text, and 
couldn't fit the name of the directory where the DL DateEdit
components are stored.

The solution is to rationalise your component locations. Because the
total number of characters allowed in 'Search Path' is limited, it is
always best to select short path names for the components. For example,
create a Delphi Component directory (eg c:\dc) and place other components
under this:

  c:\dc\qr        {Quick reports 2}
  c:\dc\dz        {DynaZip 3} 
  c:\dc\ip        {InfoPower 3} 
  c:\dc           {DL DateEdit components anbd general third-party components}  

'...Resource already exists (DLDE16.RES)...'
A message like this indicates that you already have a component named
TDLDateEdit or TDLDBDateEdit installed. The solution to this is to 
uninstall the older (or alternate) version of TDLDateEdit or TDLDDateEdit
then try to reinstall the new one again.

'...Component is already installed...'
This message is most likely displayed because you already have the
previous version of the DL DateEdit components installed. You could
remove the older version, compile the component library, then install
the Registered version as described above.



FILE LIST
---------

README.TXT	This file

DLDE16.DCU	Delphi 1 Compiled component
DLDE16.DFM	Delphi 1 form used by calendar component
DLDE16.RES	16-bit Bitmap and Stringtable Resources
DLDE16.DCR	16-bit Component resource file (icons for component palette)
DLDE16.HLP	Help file (Win 3.1 format)
DLDE16.KWF	Keyword file (required to integrate help in Delphi 1)

DEMO16.ZIP	Demonstration source code for Delphi 1
	

GETTING HELP
============

Mail
----

DL Components Support
13 Treherne Court 
Carrum Downs   3201
Australia

Email
-----

davidml@ozemail.com.au

Web Site
--------

http://www.ozemail.com.au/~davidml/delphi


Bugs & Typos
============

If you discover any bugs or errors in the DL DateEdit components,
(and can replicate the bugs at will), please submit details of
the problem to the Author:

  David Leeding
  13 Treherne Court 
  Carrum Downs   3201
  Australia

or via email to 

  davidml@ozemail.com.au

