GigaSoft ProEssentials v1.5Windows 3.1 DLL and VBX for Presentation Charting
When comparing features of the ProEssentials with those of its competitors, it is clearly evident that the ProEssentials offer the best choice in professional graphic functionality. And here is why... * Images prepared in memory. * Professional and intelligent image construction independent of shape or size. * Integrated Graph plus Table. * Extensive export capabilities which includes the spawning of OLE objects. * Comprehensive Hot-Spot / Drill-Down mechanism. * Integrated Zooming capabilities. * Real-Time capabilities. * Null-Data capabilities. * Integrated Maximization capabilities. * Scrolling Subset and Point functionality. * User Interface with Dialogs and Floating Popup Menus. * Overall Innovation, Quality, and Attention to Detail. Table of Contents 1. Introduction 2. Demo Disk Instructions 3. Functionality Summary 4. Code Examples 5. Conclusion 1. Introduction The ProEssentials are the only custom controls to provide a turn-key graphic presentation subsystem which is designed to show real world data in the most attractive and clearest fashion. All you have to do is give these controls data and your done. Your application will instantly obtain awesome graphic functionality. The ProEssentials consist of three custom controls: GRAPH: line, bar, point, area, area stacked, area stacked%, bar stacked, bar stacked%, points plus line, points plus best fit line, points plus best fit curve (least squares of varying degrees), points plus spline, spline, histogram, high/low bar, high/low line, high/low/close, open/high/low/close, and box plot. Designed to show quantitative /categorized real variables with respect to the Y Axis. SCIENTIFIC GRAPH: line, point, stick, points plus line, points plus best fit line, points plus best fit curve (least squares of varying degrees), points plus spline, spline, and bubble. Designed to show plots of real variables vs other real variables with respect to both the X and Y Axes. PIE CHART: Standard pie chart designed to show percentages. 2. Demo Disk Instructions
Bill of Materials Install Directory DEMO.EXE Demo Program *.RDF Demo data files System Directory PEGRAPHS.DLL ProEssentials Dynamic Link Library (demo) PEGRPSVR.EXE ProEssentials OLE mini-server PEGRPSVR.REG Registration Database info for OLE functionality PEGRAPHS.HLP Windows help file for ProEssentials controls and mini- server The demo program will show examples of the three controls. The controls can take the input focus and receive mouse and keyboard commands. The following are the most common interface commands. Control User Interface Quick Reference Double-Click On Data Point Displays value of data point. Cursor will change to a finger-pointer. Inside Graph Displays coordinates where clicked. Outside of Graph Shows the Customization Dialog. Right-Button-Click Shows Popup Menu Left-Button-Drag +Shift Invoke Zooming via a rubber-band selection rectangle. Zooming capabilities are only enabled for the Box-Plot, Scientific Graphs, and the Lot-a-Points demonstration. The ‘Z’ key and popup menu can be used to Undo the Zoom. You can refer to the help file PEGRAPHS.HLP for more detailed information on the end-user capabilities of the ProEssentials controls. Make sure to note... a) Size the demo window and watch how the ProEssentials produce a quality image regardless of shape and size: Point labels will never overlap; note how grid tick/line densities will automatically change; and how point labels will be automatically forced into vertical orientation. The ProEssentials can be used to generate high-quality background data-driven images which you can rely upon. b) Scroll through subsets and points to see the effect of preparing images in memory. c) Notice that the demo demonstrates how an application can respond to Hot-Spots. The demo will respond to clicking Subset Labels, Point Labels, and Table Items. d) Export an OLE object to the clipboard and then paste it into MS Write or some other OLE container. You can then double-click the image to invoke ProEssentials Graphic Server, PEGRPSVR.EXE. The ProEssentials OLE objects also provide several OLE verbs which allow you to customize the image without leaving the container application. e) Be sure to export some images to your printer. For an even better demonstration, paste an OLE Object or Metafile into a document and then print the document. The ProEssentials look very impressive inside documents. f) When looking at the Real-Time example: invoke the popup menu and make a customization. g) In the Lots-a-Points demonstration: (1) notice how the threshold, and alt-frequencies variables produce legible point labels and tabled data no matter how many points are graphed, and (2) notice how zooming can be limited to only horizontal extents. h) Notice the context sensitive help. Give the focus to any ProEssentials based control (example: Font Size radio group) and press F1. When your done When you are ready to remove the demo files from your system, don’t forget to use REGEDIT.EXE to remove PE Graphic Server from the registration database. REGEDIT will be in your Windows directory. 3. Functionality Summary Rather than cramming all types of functionality into one control, the ProEssentials break out graphic functionality into three controls. This makes the controls more logical and user friendly by only offering customizations unique to a graphing situation. All functionality resides in one DLL with three small VBX alternate interfaces. Bold Italic Underlined features are new to Version 1.5 1) The ProEssentials have the BEST built in user interface: * The ProEssentials have their own customization dialogs, colors dialog, fonts dialog, print dialog, image export dialog, and text export dialog. * Double-Clicking the ProEssentials, the user is shown a customization dialog that allows the object to be customized, maximized, and exported. * Right-Button-Clicking the ProEssentials, the user is shown a floating popup menu allowing a quick alternate interface to much of the object's customizations and functionality. * Pressing keystrokes, the ProEssentials provide the fastest short-cuts to the object's customizations and functionality. * The ProEssentials function like a button, they have a focal-rect and can be tabbed to and from. * The user interface can be adjusted or bypassed. The ProEssentials can also be used to provide background image construction. * The ProEssentials have the best hot-spot/drill-down mechanism. Possible Hot-Spots include, subset labels, point labels, data points, graph coordinate feedback, and table coordinate feedback. When the cursor moves on top of a Hot-Spot, it changes to the same Hot-Spot cursor used in Windows Help. The developer can respond to both click and double-click hot spot events. The Graph and Scientific Graph Objects also have a built in mechanism to prompt the user of data point values. 2) The ProEssentials show the MOST attention to detail: * The Graph Object and Scientific Graph Object both have a scrolling / comparison subset mechanism. An object can contain multiple subsets worth of information, yet (1) the user can choose what/how much of the information is shown at any one time, and (2) the user can revolve through subset information while comparing individual subsets to other permanent subsets. * The ProEssentials work with three types of subset information: Normal Subsets, Comparison Subsets, and Right Axis Comparison Subsets. Comparison subsets are special subsets which are normally graphed as a thin line. You can combine a line/bar/area/...etc graph with a comparison line graph. Comparison subsets also have the option to be graphed as lines/bars/areas/...etc. Right Axis Comparison Subsets are the same as Comparison Subsets, however, they are plotted with respect to an alternate Y Axis scale which is on the right side of the graph. * The Graph Object has scrolling / random point capabilities. The developer and user both have control over the amount of point information that is displayed at any one time. If the amount of point information displayed is less than the amount contained in the object, there will be a horizontal scrollbar allowing the user to view the rest of the data. When a Graph Object displays a large quantity of point information, the developer can define alternate meaningful frequencies to be used to place point labels and tabled information. For example, if you have 1500 minutes worth of data, you can define alternate frequencies of 5minutes, 15minutes, 1/2 hour, and 1hour. So no matter how many points are being displayed, there will be point labels and tabled data at an optimum frequency to produce legible text. * The Graph and Scientific Graph Objects have powerful zooming capabilities. The mouse is used to control a rubber-band selection rectangle which designates the new extents of the graph. The developer can control whether zooming capabilities are horizontal, vertical or both horizontal and vertical. The Graph Object implements horizontal zooming capabilities as a short cut method of selecting and initializing scrolling points parameters. All Hot Spots and Coordinate Prompting remain in effect while zooming. * The ProEssentials support NULL data. This feature allows for multiple subsets with varying amounts and frequencies of data. * The Graph Object has real-time capabilities. The Graph Object has the ability to automate the appending of data, and scrolling the new information into view. This features is ideal when your gathering timely data and need to display the most current image. When the Graph Object receives new data, it understand to regenerate and invalidate only the graph portion of the image. All object customizations by either dialog or popup menu remain functional during real-time operation. Combined with the fact that images are prepared in memory, all these features allow for real-time implementations which are very professional. * The Graph Object has the capability of automatically producing a large variety of statistical comparison subsets. The Graph Object will automate the construction of Pareto style charts by sorting the data and generating the accumulated percent line as a comparison subset. * The Graph and Scientific Graph Objects have the best automatic grid tick / line frequency selection. There is also manual control over grid tick / line frequencies. V1.5 has improved the automatic grid construction to better handle data values in the range of .001 to 1. * The Graph Object can display a graph, graph plus table, or just the table. The table can include only those subsets currently graphed, or show all subset information contained in the object. * The Pie Chart Object is ideal for showing unpredictable data because it will group small sliver type slices into an *Other slice. A footnote is placed at the bottom of the control notifying the user what the *Other slice contains. * For Point style graphs, the Graph and Scientific Graph Objects allow the selection of 12 point styles in three variations of size. * For Line style graphs, the Graph and Scientific Graph Objects allow the selection of 7 line styles. * The Graph and Scientific Graph Objects have upper/lower control limits which can be superimposed onto the graph's grid. * The ProEssentials provide both a default and a custom set of properties. The user can make customizations and then toggle back and forth between the original and custom parameter sets. The developer can also initialize the custom parameter set so that the user only needs to press a key to transform the image into an alternate common form. * The ProEssentials have built in maximization capabilities. A small control on a form can be quickly maximized by the user. * The ProEssentials have built in context sensitive help. There are API calls that the developer can call to receive context IDs that correspond to ProEssentials based windows. This allows for an integrated help system. The ProEssentials even come with everything necessary to adjust the help file text to target a particular audience. * The ProEssentials print dialog allows the printing of multiple pages. Varying amounts of subset information can be automatically placed onto separate pages. * During development, the ProEssentials will transmit debug messages to both DBWIN and MS Visual Basic's immediate window. You don't have to look at function return values (and then look the return values up in a book) to know if your making a mistake. The ProEssentials will tell you. * The ProEssentials provide 40 API calls which form a logical and easy to comprehend programming interface. There are so many properties I don't want to count them. SDK developers will appreciate that they have serialization capabilities. * The ProEssentials come with a 150 page manual. The manual’s text and reference sections are written in a clear and familiar format. SDK Property names contain data-type nomenclature. 3) The ProEssentials have the SMARTEST image construction: * The ProEssentials prepare their images in memory. Scrolling functionality is professionally fast and clean. Your users wont get a headache watching their screen repeatedly redraw. * The ProEssentials provide a method to quickly transform an image from color, to monochrome, to monochrome with symbols. This is possible because the ProEssentials maintain properties for both color and monochrome image construction. * The ProEssentials provide control over the font sizes used in image construction. Small controls placed onto a form can default to relatively large fonts. Images exported to the printer can have relatively small fonts. This feature is necessary to produce high quality images under varying situations. * The ProEssentials allow the user to adjust the precision of tabled data and data labels. If the object is a small control on a form, the precision can be set to zero which will cause the text to be larger and more readable. The user can always maximize the object and increase the precision when necessary. * The ProEssentials check label lengths to make sure text doesn't overlap. If they do, the ProEssentials will determine the correct size the labels should be to prevent overlapping. Overlapping labels are embarrassing and frustrating. * The Scientific Graph Object can place several types of labels next to data points. (1) automatic data point value labels, (2) point labels, and (3) individual data labels for when more than one subset is displayed. The ProEssentials will attempt to not allow these labels to overlap. * If Graph Object point labels get too small, the point labels are automatically forced into vertical orientation. The user can also adjust point label orientation. 4) The ProEssentials have the MOST export capabilities: * Export a metafile to the clipboard, file, or printer (via a print dialog.) * Export a device independent bitmap to the clipboard or file. * Export varying amounts of text data in various formats (via a text export dialog) to the clipboard or file. * Export an OLE object to the clipboard. The object is served by an OLE-miniserver which is also redistributable. Imagine the power and convenience of allowing an exported image to retain all the functionality listed on this sheet. 4. Code Examples The ProEssentials are extremely easy to implement. Our current customers have had no problem in quickly getting data into the ProEssentials. SDK Example float fData[4][20]; /* 4 subsets by 20 points */ char szSubsetlabels[] = “Texas\tCalifornia\tFlorida\tWashington\t”; int i, j;
/* hWndPE is a global variable to hold handle to Object */ hWndPE = PEcreate (PECONTROL_GRAPH, WS_VISIBLE, &rect, hWnd, 10); if (!hWndPE) { /* if PEcreate returns Zero something went wrong */ }
PEnset (hWndPE, PEP_nSUBSETS, 4); /* Object will manage 4 subsets */ PEnset (hWndPE, PEP_nPOINTS, 20); /* Object will manage 20 points */ PEnset (hWndPE, PEP_bPREPAREIMAGES, 1); /* Prepare images in memory */ PEnset (hWndPE, PEP_nDATAPRECISION, 1); /* Table Data has 1 decimal*/
for (i=0; i<4; i++) /* make some random data */ { for (j=0; j<20; j++) fData[i][j] = (float) GetRandom(100, 1000); }
PEvset (hWndPE, PEP_faYDATA, fData, 80); /* 4subset x 20points = 80 elements */
/* 4 tab delimited subset labels initialized above */ PEszset (hWndPE, PEP_szaSUBSETLABELS, szSubsetlabels, 4);
/* reinitialize and reset image */ PEreinitialize (hWndPE); PEresetimage (hWndPE, NULL, NULL); VBX Example The following code is for a VBX Graph Object placed into a Visual Basic form. The code is from the Form_Load event and the Graph Object has the following properties set: Subsets = 4 Points = 12 PrepareImages = TRUE
For s% = 0 To 3 ' ** transfer some random data into graph **' For p% = 0 To 11 o% = ((s% * 12) + p%) PEGraph1.YData(o%) = (p% + 1) * 5 + (Rnd * (25)) Next p% Next s%
PEGraph1.SubsetLabels(0) = "Texas" ' ** set Subset Labels **' PEGraph1.SubsetLabels(1) = "Florida" PEGraph1.SubsetLabels(2) = "Washington" PEGraph1.SubsetLabels(3) = "California"
PEGraph1.PointLabels(0) = "January" ' ** set Point Labels **' PEGraph1.PointLabels(1) = "February" PEGraph1.PointLabels(2) = "March" PEGraph1.PointLabels(3) = "April" PEGraph1.PointLabels(4) = "May" PEGraph1.PointLabels(5) = "June" PEGraph1.PointLabels(6) = "July" PEGraph1.PointLabels(7) = "August" PEGraph1.PointLabels(8) = "September" PEGraph1.PointLabels(9) = "October" PEGraph1.PointLabels(10) = "November" PEGraph1.PointLabels(11) = "December"
PEGraph1.Refresh ' ** must refresh after setting data **' 5. Conclusion The ProEssentials offer many unique and innovative features which shape the ProEssentials into a high quality presentation charting solution. If you are working on an internal or vertical market application, you can utilize the ProEssentials functionality royalty free. Whether you want quality data-driven images or a complete turn-key graphic presentation/exportation sub-system, the ProEssentials will elevate your current and future applications to a new level. Gigasoft will greatly appreciate your business, and Gigasoft is committed to customer service and orientation. Please let us be your partner in producing the highest quality software possible. The ProEssentials are available for $249. The ProEssentials show the most attention to detail and produce the most impressive graphs, and now at an equally impressive price. |