        DELPHI TPropertyGrid component - version 1.17 -  7 May 2001
================================================================================

  (C) 1999-2001 Dmitry H. Bubniewski

  This is a Delphi 4.0 two-column grid component for edit different 
  property in different style (simple edit, combobox, external handler,
  spincontrol edit, edit with standard Delphi mask). 

  Also grid is compatible with Delphi 5 and C++ Builder 5.                                                                   

  This component based on a VCL file Grids.pas with full functionality of 
  TStringGrid, add new smooth view and next new properties & methods:
 
  Public methods:

  procedure AddPropertyRow(pName, pValue:string; pEditMode:TPropEditMode)
  -----------------------------------------------------------------------

  - add new property row at the end of grid with 
   name, value and edit style of your choice;

  procedure ChangePropertyRow(prpIdx:Integer; pName, pValue:string; 
   pEditMode:TPropEditMode)
  -----------------------------------------------------------------

  - change desirable property row of grid with 
   name, value and edit style of your choice;

  procedure DeletePropertyRow(Index:Integer)
  ------------------------------------------

  - delete desirable property row of grid; 
  
  procedure ResetModified
  -----------------------

  - set to False property TCellValueProp.Modified for all PropValues;
 
  Published properties:

  property OnCheckBoxClick
  ------------------------

  - this event occurs when user check/uncheck checkbox column;


  property OnEditButtonClick
  --------------------------

  - in this event you may write handler for row with
   emEllipsis edit style;

  NOTE: for recognize from what row this event handler called
     in PropValues set different value of Tag.
     
  property OnShowHint
  -------------------

  - in this event you may set hint string for different rows. Hint shows when
   user move mouse over inplace edit. If you don't use this event, hint appear
   only when property value in editor longer than editor's width;

  new option doTitle in Options (replace old property FixedTitleRow) 
  ------------------------------------------------------------------

  - enabled/disabled Title;

  property PropGridTitle:TPropGridTitle
  -------------------------------------

  - titles text, alignment, color, font for Name and Value columns if 
   goTitle in Options;
   
  property NameColProps:TColumnProps (replace old property NameAlignment)
  -----------------------------------------------------------------------

  - Font and alignment for Name column;

  property ShowCheckColumn:Boolean
  -------------------------------- 

  - on/off check column (values stored in property Checked of
   PropValues.Items);

  property DefaultNameColWidth:Integer  (replace old property DefaultColWidth)
  ----------------------------------------------------------------------------

  - Name column default width;


  property ValueColAutoSize:Boolean (replace old property ClientAutoFit:Boolean)
  ------------------------------------------------------------------------------
 
  - if set True allow Value column fit to client of grid;

 
  property EditFrameStyle:TEditFrameStyle
  ---------------------------------------

  - provide different frame of focused grid's inplace edit;

  property PropValues:TCellValueProps
  -----------------------------------

  - holds a collection of TCellValueProp objects, each TCellValueProp object 
   represents the visual characteristics (label, value, editmode, picklist, 
   checked, readonly, check enabled/disabled, edit mask, spincontrol properties) 
   of PropertyRow in the grid. 

  NOTE: 1. if goTitle in Options setting PropValues[0] have no effect.
        2. ShortCuts for different edit modes:
          - emEllipsis (Ctrl+Enter);
          - emPickList (Alt+Down);
          - emSpinControl (Alt+Up - increase value, Alt+Down - decrease value).

  CHANGES 

  with version 1.1

  - removed Event OnEditorChange (use instead standard event OnSetEditText);
  - added property EditMask (in PropValues.Items) for masked edit;
  - added property Enabled (in PropValues.Items) for enabled/disabled checkbox;
  - fixed small bugs.

  with version 1.12

  - change definition of event OnEditButtonClick (it just like OnCheckBoxClick);
  - added new value of property EditMode - emSpinEdit;
  - added property SpinProps (in PropValues.Items) for spincontrol edit;
  - if EditFrameStyle is efFlat CheckBoxColumn also use Flat flag when
  draw;
  - option goRowSelect now not available;
  - if EditMode equal emNoEdit then cell in grid not selected (except
  case if Options contain goRangeSelect);
  - fixed bug when use method PropValues.Clear;
  - now pressing Enter for select from DropDownList not activate
  event OnKeyPress of grid.                   
  
  with version 1.15    
  
  - added event OnShowHint;
  - added property NameColProps instead NameAlignment, for set Font and
   Alignment of NameColumn;
  - added public property Modified (in PropValues.Items), if user change
   PropertyValue Modified become True;
  - added method ResetModified which setting False property Modified for
   all PropValues.Items;
  - added property CheckView (in PropValues.Items), it can be three 
   different values (chEnabled, chDisabled, chNotVisible);
  - if user exclude option goFixedHorzLine and EditFrameStyle not equal efFlat,
   in NameColumn current row draw with sunken border (like in Delphi Object 
   Inspector).
  
  THANKS
  
  - Michael Yui for many questions which help me improve my  component and
  shift work on grid from dead point;
  - Yur Ovchinnikov, author of nice utility for Internet Searching "Search +",
   who help me with very useful suggestions and include me in thank's section
   of his utility :)));
  - Darrell Jackson for "Modified" property.
   

  INSTALLATION

  Open menu "Component\Install Component...". In "Unit file name" 
  browse PrpGrid.pas. In "Package file name" browse ..\LIB\dclusr40.dpk 
  in Delphi 4 or any package of your choice. Click Ok.       
  
  CONTACTS

  Contact me if you have any questions, bug reports, comments or suggestions:
  
  Programmer: Dmitry H. Bubniewski
  E-mail: sb3@mail.ru, dmitry@algosoft.nsk.su
  Web: http://sb3.boom.ru/delphi.html
  ICQ # 37115452
===================================END OF READ.ME===============================
