RTDesignerPanel (v1.0)
======================

Delphi Component for Borland Delphi 1, 2, 3, 4 & 5.

Overview
--------

The RTDesignerPanel is a TCustomPanel descendant that allows it's children to be moved 
and/or resized at run-time. It functions in a very similar manner to the form designer
in the Delphi IDE.

Any controls placed on a TRTDesignerPanel as children, at design time or run-time will
automatically be moveable and resizable.

Your comments and suggestions are welcomed. Any bugs you find I would appreciate it if
you could email me about them. Any good ideas for upgrades ? I'm all ears.

This version of the component is a demo. The full version contains additional design
time properties allowing changes to be made to the component's functionality and
appearence. Even though there are a load of properties missing the component still
does the job it's supposed to, the missing properties in the main are just for
aesthetics. Below is a list of the missing properties and their functions;

    Property                                            Options/Description
    ----------------------------------------------      ----------------------------------------
    property DragStyle : TRTDesignerDragStyle           FocusRect, Inverted or Rectangle.
    property GrabberColor : TColor
    property GrabberHeight : integer
    property GrabberOutlineColor : TColor
    property GrabberOutlineWidth : integer
    property GrabbersOffset : integer                   Grabbers pixel offset from peremiter of
						        selected control.
    property GrabberStyle : TRTDesignerGrabberStyle     Rectangle or Ellipse.
    property GrabbersVisible : boolean
    property GrabberWidth : integer
    property GridColor : TColor
    property GridSizeX : integer
    property GridSizeY : integer
    property GridStyle : TRTDesignerPanelGridStyle      Dots, Lines or CropMarks.
    property GridVisible : boolean
    property GroupResizing : boolean                    Can multiple controls be resized ? 
    property GroupSameParent : boolean                  Select in different parents ?
    property Hollow : boolean
    property HorizontalResize : boolean                 Ok to do horz. resize ?
    property MinDragHeight : integer                     
    property MinDragWidth : integer
    property MinimumVisible : integer                   Minimum visible in Parent.
    property OutlineColor : TColor
    property Outlined : boolean
    property OutlineOffset : integer
    property OutlinePen : TPenStyle
    property OutlineWidth : integer
    property SelectedColor : TColor
    property SelectedOffset : integer
    property SelectedPen : TPenStyle
    property SelectedPenWidth : integer
    property SelectedStyle : TRTDesignerSelectedStyle   Grabbers (like Delphi) or outline.
    property SnapToGrid : boolean                               
    property VerticalResize : boolean                   Ok to do vert. resize ? 

Where I haven't shown an Options/Description, I figured the properties were self explanatory.

-----------------------------------------------------------------------------------------------

The following is a summary of public methods and properties. See the Demo.Dpr.

TRTDesignerPanel Methods
--------------------------------------

procedure AddRTCtrl(Control : TControl; Container : TWinControl; ControlsBounds : TRect);

AddRTCtrl - Add Run-Time Control, add a new control to the RTDesignerPanel. The control
specified by Control (which should already have been created) will be added to the
RTDesignerPanel as a child of Container. ControlsBounds specifies the control's bounds.
If Container is nil, the TopLeft coordinate in ControlsBounds will be used to locate a parent.

procedure BringToFront;

Simply brings all selected controls to the front.

procedure SelectAll;

Selects all controls on RTDesignerPanel.

procedure SendToBack;

Sends all selected controls to back.

TRTDesignerPanel Properties
-----------------------------------------
property RTDesigner : TRTDesigner;

The RTDesigner property contains some stuff thats usefull.


TRTDesigner Methods
--------------------------------------

function FindCtrlAt(Pos : TPoint; OnlyContainers : boolean) : TControl;

FindCtrlAt - Find Control At a specified position in the RTDesignerPanel. Pos specifies
the position, if OnlyContainers is true, only controls with csAcceptsControls in their
control style will be returned, otherwise, any control will be returned.

procedure SelectControl(Control : TControl; ThisCtrlOnly : boolean);

Selects a control in the RTDesignerPanel.

procedure SelectControlsInRect(Parent : TWinControl; R : TRect);

Selects control(s) in a specified rect (R) in the specified parent (Parent).

property SelectedControls[Index : integer] : TControl;

A list of the currently selected controls.

property SelectedControlCount : integer;

The full version & it's source can be bought for 10 (ten pounds sterling). I live in
the U.K and I'm new to this internet software thing so this is the bottom line (please
don't think I'm being difficult). If you want to buy this component (hope you do), it
will cost 10 or whatever that is equivalent to where you live. I havn't got a clue what
the correct method of postage should be all over the world. Obviously cheques from the
U.K. are cool, cash is okay if you're prepared to take the risk of it getting lost, mind
you, in the U.K. at least, I've been sending cash through the post for years. A small note
inside a birthday card or something seems to work. I'm not sure if registering post may
help. Postal orders/Money orders (in pounds sterling) should be ok. I appologise for my
ignorance. You also need an EMail address. That's how I will send you the source.

Anyway what I'm trying to say without sounding like a bit of a git, is, when I get your
10 or equivalent, and your email address, I will email you the source the same day.
You will also get updates, bug fixes etc if and when there are any.

Send post to:

EverRD Software Ltd
Kent House
Wood Street
TAUNTON
Somerset
TA1 1UW
England

EMail: Blake@vat.org.uk

I think I've covered everything. Don't forget to include your EMail address.
If you have any problems with this component email me.

History
----------

There isn't any, yet.

License Agreement
--------------------------

(c)Copyright 2000 By EverRD Software Ltd. All rights Reserved.

Permission to use, copy and distribute this software and its documentation for
any purpose and without fee is hereby granted, provided that the above copyright
notice appears in all copies and that both the above copyright notice and this
permission notice appear in supporting documentation, and that the name of
RTDesignerPanel authors not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior permission. This
software is made available "as is", and RTDesignerPanel AUTHORS DISCLAIM

ALL WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD TO THIS SOFTWARE,
INCLUDING WITHOUT LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE, AND IN NO EVENT SHALL AUTHORS BE
LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, TORT (INCLUDING NEGLIGENCE) OR
STRICT LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.


Author:  Blake Mason
EMail: Blake@vat.org.uk
