"Graphics Layout" - a "Delphi-Like" IDE replacement =================================================== Using "Graphics Layout" you can create a program that supplies your customers with an environment like Borland's Delphi..... - Drag and Drop components from an graphic list of available components. - Move the components around on the form with the mouse. - Edit the properties of the components with an "Object Inspector". All this, but without the need of the Delphi IDE running. Version 1.00 Copyright ©1996 Jack Torrey and Phaedreus Labs All Rights Reserved. Note: These dcu units are compiled with Delphi version 2.0 This package contains delphi compiled units that are not crippled in any way. You may use these to develop any software that you do not charge money for. If are developing a product for sale, or if you would like the source files....... The latest version, with permision to use for profit: $ 45.00 (USA dollars) The complete source, also with permision as above: $ 95.00 Feel free to experiment, or use in any way you wish except to develop a product that you will charge money for. To be fair, you should register to get that priviledge. ======================================================== Included files: Project1.exe { demonstration executable } Project1.dpr { demonstration project file } CtlFom.dcu & .dfm { the comtrol form } DsgnForm.dcu & .dfm { the design form } InspForm.dcu & .dfm { the inspector form } PalForm.dcu & .dfm { the palette form } GLComp.dcu { "Graphics Layout components" class } { these objects contain an IF_Engine } IFEng.pas { base class for all components you create } IFEngTst.pas { example derived class to run demo } Icons\Default.bmp { misc icons used to represent components } Icons\Function.bmp Icons\Pipes.bmp Icons\Views.bmp All Files.. Copyright ©1996 Jack Torrey All Rights Reserved. =============================================================== Graphics Layout is a demonstration program that uses the files above to create a "Delphi-Like" environment. This is an environment that the user can drag and drop components onto a form, and edit the properties of the components with an "Object Inspector" - So what is new about this? If you wanted to deliver a program that had these abilities, and you used the standard Delphi approach of creating components, your users would have to purchase Delphi 2.0 from Borland. But supppose you did not want to require this of your customers?? Suppose your customers were not programers? Suppose, for example, you were writing a program to create/edit schematics of electronics hardware. You would want your customers to be able to drag and drop schematic symbols for various digital components, but you would NOT want them to have to purchase (or learn about) Delphi!! A library of custom components would not be a very good starting point for this program, because they require the Delphi IDE to be running in order to function. "Graphics Layout", however, can form the basis of this program. With it you can create your own set of components and define the properties that you want the user to have control over. At run time, these components are graphically displayed and your customers can drag/drop them onto a design form - without the IDE being present. =============================================================== For a quick intro of how this works, run "Project1.exe". When this demo program runs, there are four windows: 1) The "Control" window (in the upper left corner) provides the menus and buttons for your application. You would customize this form as necessary. The form supplied is only an example of how this may look. 2) The "Palette" window (at the upper right) provides a graphical list of all components that can be dragged on the schematic. This form need not be modified, because it dynamically loads the "Graphic Layout" elements necessary for your application. You will probably keep this form just as it is. 3) The "Design Form" (in the lowwer right corner) is where you drop the elements from the palette window. It is like a "TForm" that is being "designed" at run time. 4) The "Inspector" window (at lower left) lists all properties of the currently selected component. To view the properties of a different component, simply click on the large arrow button in the palette window, then click on a component in the design window, and it's editable properties will show up in the Inspector window. To see how this works, click on one of the speed buttons in the palette window, then click 3 or 4 times somewhere in the design window. You will see a componenet created each time you press the left mouse button. To select a different component to place onto the design window, simply press a different speed button. Note that there are three sets of palette components. You can select a different set with the drop down selector in the palette window (just above the large arrow button.) Each set has multiple tabbed pages, with each tabbed page having multiple components on it. To change the properties of component placed on the design form... First, press the large arrow button in the palette window. Second, click on the component (in the design form) you wish to view. The "Inspector" window will show the properties of that element. You can change some of the properties shown, the others are marked as read only. To execute a method of one of the components, simply RIGHT-click on the component in the design window. A popup menu of commands available for that particular component will be displayed. All this should be very familiar. It operates just like the Delphi IDE, except that the Delphi IDE is not present when this program is running. It has been replaced by the "Graphic Layout" framework. This demo only defines a very few limited components. They are: - 'Add', 'Sub', and 'Mul' in the "Functions" group of the palette window. - 'Pipe', in the "Pipes" group - 'View', in the "Views" group "Graphics Layout" allows much further development than what is shown in this (initial) demo program. It allows for: - Practicaly unlimited number of components - Each with it's own graphic symbol (a "xxx.BMP" file) - Each with it's own popup menu and unique set of commands - Each with it's own set of properties - Each property with: - It's own unique name, up to 32 characters - It's own type, including: integer, string, double, etc. - Flags for: 1) Read_Only and 2) User_Viewable To see how to create an application like this, look at the source file (one of two supplied in this package) called "IFEngTst.pas". This is the "Interface to the Engine - Testing unit" hence "IFEngTst". This unit creates a class that is derived from the code in "IFEng.pas". You can edit this file to create your own components, or derive new components of your own in other units. As long as your components are derived from GLElement in the "IFEng.pas" file, they will be a part of the overall structure. ================================================================ Disclaimer: This code has gone through only minimal testing and may have imperfections. My objective at this point is to see if there is an intrest out there for it. If you like what you see, especially if you think you may be able to use it in a real application, please let me know. "Graphics Layout" 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 conse- quential, which may result from the (mis-)use of Graphics Layout. Bug-reports, suggestions, even flames are welcome. I'm easy. Jack Torrey Phaedreus Labs jtorrey@mrtc.org