
TEdgeForm   (c) 2001    RL Collins          rcoll@northlink.com


This form simulates the Windows-style "auto-hide" START menu tool bar.  This
form sits against an edge of the screen (left, right, top, or bottom) and will
automatically shrink itself down to a thin line when there is no activity on
the form.  If the mouse pases over it, the form autmatically expands itself
back to its full size mode.

The user may use the mouse to resize the form, or to move it to a new screen
edge, just like the Window START menu bar.

The OnResize form event is called whenever the form shrinks or expands; in
addition, OnResize is called whenever the form is moved to a new location
(Delphi does not have an OnMove event, so we use OnResize to maintain a
consistant interface).

There are two components already defined on the form: a panel component
(efPanel) and a timer (efTimer).  These need to stay as they are.  Any new
components you add to the form (buttons, labels, etc) should be placed on
top of the panel.  This way they can be safely tucked away when the form
is shrunken to a thin line along the edge of the screen.

In addtion, you may use any of the standard Delphi events for the form (or
the panel) such as OnResize, OnKeyPress, OnMouseDown, etc.

One event is already defined: OnCreate.  This event calls the initialization
for the rest of the TEdgeForm functions; however, you may insert your own
code right after the initialization routine.

It is strongly recommended that you not modify any field or routine whose
name starts with "ef" (such as 'efFindEdge', 'efDoMouseMove', etc) as these
are the heart of the TEdgeForm.  Only if you really understand what is going
on should to change them.

form properties:

AutoFull:  boolean
    Set to TRUE if the form should automatically shrink when not in use,
    or automatically expand when the mouse passes over the (shrunken) form;
    If set to FALSE, the form must be set to full-size using property 'FullSize'.
    On reading this property, returns TRUE or FALSE if the capability is
    enabled.

AutoMove:  boolean
    Set to TRUE to allow the user to re-size or move the form using the mouse
    pointer.  If set to FALSE, the form must be re-sized by setting property
    'Size', and moved to a new screen edge by setting standard form property
    'Align'.  On reading this property, returns TRUE or FALSE if the
    capability is enabled.

FullSize:  boolean
    Set to TRUE to expand the form to it's full size, or set to FALSE to
    shrink the form to a thin line along the edge of the screen.  On reading
    this property, returns TRUE if the form is currently full-size, or FALSE
    if it is a thin line.  Normally only used if property 'AutoFull' is set
    to FALSE.

Size:      integer
    Defines the full-size of the form.  If the form is aligned along the
    top or botom edge of the screen, the width of the form is the width of
    the screen, and 'Size' represents the height of the form.  If the form
    is aligned along the left or right of the screen, then the height of the
    form is the height of the screen, and 'Size' is the width of the form.

Smooth:    boolean
    Determines the transition between full-size form and the thin line along
    the edge of the screen.  Set to TRUE to enable a smooth expansion; set
    to FALSE to have the form abruptly snap to the new size.

Align:     TAlign
    Standard form alignment defined by Delphi; on the four edges 'alTop',
    'alBottom', 'alRight', and 'alLeft' are used by a TEdgeForm.  Default
    is 'alBottom'.

efTimer.Interval:   integer
    Defines the amount of time for a form to automatically shrink from
    full-size down to a thin line.  Default is 1000 msec (1 second).        
