---------------------
TanlRuler Version 1.0
---------------------

Lefteris Loukis
e-mail : lbst@hotmail.com
           (or try:)
         p93044@poseidon.cs.unipi.gr

 April 1998, aLL nIgHt LoNg, Athens.


DESCRIPTION: 
------------
A FREEWARE ruler component that offers office 97's capabilities, such as
draging margins, draging indents (First,left,right,Hanging),
showing drag-line on associated richedit, office 97 presentation 
style, etc. 
Full source and demo included, please read the LICENCE and the DISCLAIMER 
at the end of this text file.
             

DELPHI IDE:
---------------
Delphi 1.0 = No 
Delphi 2.0 = ? (Not tested, if do so and have problems, please inform me)
Delphi 3.0 = Yes


INSTALLATION (DELPHI 3):
------------------------
1. Copy .pas and .dcr file to a common library folder.
2. Choose Component|Install component and add the previous choosen folder
   to the search path, if necessary.
3. Browse to the .pas file. 
4. Choose an existing package or create a new one.
5. Press OK to compile the package. 
6. TanlRuler will be shown in the EXTRA component page.

For delphi 2 use the standard installation instructions for compiling the library.


USAGE
-----
(Only properties,events,methods and types that are new, are described below):

-----------
T y p e s :
-----------
- TIndentID = (riFirst, riLeft, riRight, riBothLeft);
  For identifing indents, used in events.

- TMarginID = (rmLeft, rmRight);
  For identifing margins, used in events.

---------------------
P r o p e r t i e s :
---------------------

- Richedit      :TCustomRichedit
  If this property is assigned then there will be a ghost line drawing in the client area of 
  the richedit control while an indent/margin is draging with the mouse.


- RulerTab      :TRulerTab (1..255)
  The minimum distance, in pixels, between two sequencial steps of an indent/margin.


- MinIndentDist :Integer     
  The minimum distance, in pixels, between the Left-side indents and the Right indent.


- Factor      :TRulerFactor (1..30000)
  The increasing factor of the ruler numbers.
  e g. factor=1   ---> 1,2,3,4,5...
       factor=20  ---> 20,40,60,80...


- TabDist     :TRulerTabdist 
  The minimum distance, in pixels, between two sequencial marks (lines or numbers)
  on the ruler's main area.


- MarginRight :Integer
- MarginLeft  :Integer
  The width of the margins, in pixels.


- BorderLeft  :Integer
- BorderUp    :Integer 
- BorderDown  :Integer 
- BorderRight :Integer 
  The width of each border, in pixels.


- IndentFirst :Integer
- IndentLeft  :Integer 
- IndentRight :Integer 
  The absolute offset, in pixels, of each indent, counted from the begining of the   Ruler,(including border)
  e.g For relative offset, you have to subtract the corresponding border


- ShowSmallLines :Boolean
- ShowLargeLines :Boolean
- ShowIndents    :Boolean
- ShowNumbers    :Boolean
- ShowMarginHandlers :Boolean
  Some self explained properties that affect on the ruler presentation.



---------------
M e t h o d s :
---------------

- IncreaseIndent
- DecreaseIndent
  Increases and decreases the first and the left indent using step by RulerTab, usefull for
  the implemention of the two, known from MS office, functions.

-------------
E v e n t s :
-------------

- OnIndentChange   : parameter :IndentID
  This event triggers after the user releases the mouse while he was dragging an indent.
  Note that is not triggered when you change indent manually.
  Use parameter to identify which indent has been changed. (first, left, right, or hanging)

- OnIndentDrag     : parameter :IndentID
  This event is triggered while the user drags an indent.     
  Use parameter to identify which indent is dragging. (first, left, right, or hanging)


- OnIndentClick    : parameter :IndentID
  This event is triggered when the user clicks an indent.     
  Use parameter to identify which indent has been clicked. (first, left, right, or hanging)

- OnIndentDblClick :
  This event is triggered when the user double clicks an indent.    
  Usefull for opening dialogs for change settings... 
  Use parameter to identify which indent has been double clicked. (first, left, right, or hanging)

- OnMarginChange   : parameter MarginID
- OnMarginDrag     : parameter MarginID
- OnMarginClick    : parameter MarginID
  These events are the same with the above except that they are reffered to margins.
  Also, there is no double click event for margins. Use Ruler's doubleclick, instead.




TanlRuler v1.00 is not featuring TABS yet, as MS OFFICE does.
In future versions there will be a handle for that.
Also, there is no vertical ruler support yet.

Since this was my first attempt to write a delphi component,
you may have some notes, comments, bugs or even suggestions 
to report to me. Please, drop me an e-mail to give me the 
opportunity to perform fixes in the next version.
If it is necessary (and possible), the next version of 
TanlRuler will be released on 1st or 2nd week of June 1998.
Thank you for using TanlRuler.


FREEWARE LICENCE:
-----------------
For distribution:
This component may be FREELY COPIED and DISTRIBUTED as long as
there'll not be any kind of changes in the contents of this 
pack and the contents of its files, including sources and this 
text file.
Furthermore,
YOU ARE NOT ALLOWED TO SELL IT AS A STAND ALONE SOFTWARE PACK.
However you can include and distribute this component as part of 
a FREEWARE component library/Package. (If you do so, please keep
me informed).

For usage:
You may write and compile your own application programs 
using freely this software, including any libraries and 
source code included for such purpose with this pack. You may 
freely reproduce and distribute programs which you create 
using this software (including source code), even for comercial
purposes.

Before use it, please read the following,

DISCLAIMER:
-----------
THE AUTHOR DISCLAIM ALL WARRANTIES, EITHER EXPRESS OR 
IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF 
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND 
WARRANTIES OF NONINFRINGEMENT, WITH REGARD TO THE SOFTWARE AND 
THE ACCOMPANYING DOCUMENTATION. 
IN NO EVENT SHALL AUTHOR BE LIABLE FOR ANY 
DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES 
FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF 
BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING 
OUT OF THE USE OF OR INABILITY TO USE THIS PRODUCT, EVEN IF 
THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 
DAMAGES.
