************************************************* * Run-Time Designer * * ver 1.0 RC0 * * * * by * * Karl-Otto Rosenqvist * * * * Copyright © 1998 Karl-Otto Rosenqvist * ************************************************* Thiss is a component that makes it possible to design at run-time in a Delphi application, just like Delphi! You can move an size any control without having to inherit it and adding a lot of code. This is the Release Candidate(!?!) 0 of this component and it is totally free to use, no limitations what so ever, but the source is not yet availible, not even for $$$ but it will be. Please use it for all kinds of design applications, for example you can create a flow-chart app or a label designer app and so on... All questions and comments should be sent to: towebo@hotmail.com Copyright © 1998 Karl-Otto Rosenqvist This is a CardWare, that means that I want YOU to send me a postcard where you tell me what you think of RTDesigner and what you are using it for. Karl-Otto Rosenqvist Teatervägen 17 260 83 VEJBYSTRAND SWEDEN Introduction ------------ To use this component, just drop it on a form and set EditMode to True. All controls on the form will now be moveable and sizeable during run-time. If you want to restrict the editing to a panel or some otheer TWinControl decendant just set BaseControl to the specific control. If you want to set it back to the form just blank the value and the TRTDesigner will set BaseControl to its parent form. If you want to restrict the editing in the BaseControl a TRTDesigner has a property called AcceptedControl of TList type where you add all the controls you want should be editable. Using RTDesigner ---------------- Follow the steps above and use the events availible. Before processing a control check it with the IsGrabHandle(aControl) so it isn't a GrabHandle (You shouldn't try to save them or for that matter do any thing with them!). Here is the interface of the TRTDesigner: TRTDesigner = class(TComponent) Public Constructor Create(aOwner : TComponent); override; Destructor Destroy; override; Procedure AlignToGrid; Function IsGrabHandle(aControl : TControl) : Boolean; Check if a control is a grabhandle. Procedure SelectAll; Procedure SelectNone; Property AcceptedControls : TList; Property Controls : TList Read FControls; The selected controls will be in this lisst. Published Property BaseControl : TWinControl; Property EditMode : Boolean; Property GridX : Integer; Property GridY : Integer; Property Options : TRTEOptions; Property OnAllowPopupMenu : TAllowPopupEvent; Property OnControlDblClick : TControlDblClick; Property OnEditModeChange : TNotifyEvent; Property OnBaseControlClick : TBaseCtlClickEvent; Property OnControlMouseDown : TCtrlMouseEvent; Property OnControlMouseUp : TCtrlMouseEvent; Property OnMovedControl : TNotifyEvent; Property OnSelectControl : TSelectControlEvent; Property OnSizedControl : TSizedEvent; End;