AlignPanel: a panel that aligns the controls on it automatically.
For Delphi 1 + 2, 3 not tested yet.
Version 0.2 Jul-16-1997
(C) 1997 Christoph R. Kirchner


Description:

  TAlignPanel is a TPanel that aligns its child-controls to equal
  size. You can put any TWinControl (e.g. Buttons) or TGraphic-
  Control (e.g. TSpeedButtons) on it. They will align themselves
  if you resize the AlignPanel. To arrange the Controls, just move
  them with the mouse. The TabOrder property of the TWinControls
  gets adjusted automatically. At designtime, click on the rim of
  the AlignPanel (the rim has a size of 8 pixel and is invisible)
  to make it selected. Click on the middle of a child-Component to
  select it. Double-click on the AlignPanel (its rim) will select
  all its child-Components at once (does not work with Delphi 1).


Properties:

  Space: Integer
    The space between the child-Controls (0 to 8 pixels)

  AlignChildren: TAlignPanelAlignChildren
    acDefault: If the width > height, align Controls horizontally
    acHorizontal: Align Controls horizontally
    acVertical: Align Controls vertically


Disclaimer:

  Users of this component must accept this disclaimer of warranty:
    "This unit is supplied as is. The author disclaims all warranties,
    expressed or implied, including, without limitation, the warranties
    of merchantability and of fitness for any purpose.
    The author assumes no liability for damages, direct or
    consequential, which may result from the use of this component."

  This component is donated to the public as public domain.

  This component can be freely used and distributed in commercial and
  private environments.

  The source code may be freely distributed and used. The author
  accepts no responsibility for its use or misuse.

  If you do find this component handy and you feel guilty for using
  such a great product without paying someone - sorry :)

  Please forward any comments or suggestions to Christoph Kirchner at:
  ckirchner@geocities.com


Contents of AlignPnl.zip:

  AlignPnl.pas
    Contains TAlignPnl and the Register-procedure
  AlignPnl.d16
    16-Bit AlignPnl.dcr (image for the component palette)
  AlignPnl.d32
    32-Bit AlignPnl.dcr
  TstAp*.*
    Sample project
  Readme.txt


Installation:

  To add this component to the component palette do:

  - From Delphi IDE Options Menu select Install Components
  - Add AlignPnl.pas


Known bugs:

  - You cannot change the TabOrders of the child-Components with
    the Change-Taborder-dialog. (But you can change the TabOrder
    of a single child-Component - it will change its position then).

  - If you select an another Control and an AlignPnl together (using
    shift while clicking on them), the AlignPnl does not show grayed
    rulers (but it is selected too).


Notes:

  AlignPnl is prepared for Delphi 3.0 - but not tested because
  I don't have it.
  Please report ANY experience you get with these components under
  Delphi 3.0 to <ckirchner@geocities.com>, so I can release this
  version to the DSP soon - thanks in advance.


Updates:

  Version 0.1:
  - First release.

  Version 0.2:
  - Bugfix: A bottom-aligned AlignPnl on a TPageControl showed
    up with the designed height only if it was on the first page
    OR it was on the page, which was active at design time.
    Found and fixed by Eugene I Levin - thanks!


PS:

  You can find my collection of components at
  the Delphi Component Building Site,
  http://www.geocities.com/SiliconValley/Heights/7874/delphi.htm

  Maybe you can find an update of this component there.
  Also, there are components that are currently under construction -
  if one of them is useful for you:
  You can help me beta-testing it ... :)
