Chapter 4 VCL Delphi Walk-Through |
The following information demonstrates how to create your first Delphi / ProEssentials VCL Charting implementation. It discusses installation, adding ProEssentials to a project, writing your first few lines of code.
Our setup does not copy our 64 bit DLL, PEGRP64G.DLL into the 64 bit Windows System dir (System32). To use the Delphi 64 bit platform, copy PEGRP64G.DLL from the ProEssentials install folder/x64 subfolder to the 64 bit Window System32 folder.
|
Installation... |

|
When running the ProEssentials setup, the setup program installs the ProEssentials DLL into system32 or SysWow64 on 64 bit systems. It also installs the ProEssentials VCL interfaces into C:\ProEssentials9\Delphi. Your relevant files are:
PEGRP32G.DLL
|
ProEssentials Pro DLL |
GIGASOFT.DPROJ |
Delphi Project File |
GIGASOFT.DPK |
Delphi Package |
PEGRPAPI.PAS |
ProEssentials Constants and Declarations |
PEGVCL.PAS |
Graph Object |
PESGVCL.PAS |
Scientific Graph Object |
PE3DVCL.PAS |
3D Scientific Graph Object |
PEPSVCL.PAS |
Polar Object |
PEPCVCL.PAS |
Pie Chart Object |
PEGRPSG.DLL
|
ProEssentials Standard DLL |
After setup completes, use the Delphi menus File / Close All and then File / Open to open the file "GIGASOFT.DPROJ" found in the C:\ProEssentials9\Delphi directory. You will see a project pane as shown to the left. Right click near the top "gigasoft.bpl" and select Install. The PAS interfaces are compiled and ProEssentials components installed into the "Additional" tab. We provide the PAS source incase you want to tinker with the interfaces.


|
Tools / Options... Dialog |

|

|
After the components are installed into the Delphi IDE, use the File / Close All menu item and save the "Gigasoft" package when prompted.
Use the File / New menu item to create a new VCL Forms Application project.
Use the Tools / Options... menu to open the "Delphi Options" Dialog as shown to the left. Add "C:\ProEssentials9\Delphi" to the "Library path" field and select "OK".
Repeat the library path setting for 64-bit Windows Platform if 64 bit is of interest.
|
Form1... |
Adding ProEssentials to a Form... |

|
Click the PEGraph control from the Additional ToolBox and then click and drag a rectangle selection on Form1's canvas. Size the vcl chart control as needed.
The adjacent image shows what you see. This represents the default state of a ProEssentials Graph.
The default state has one subset with four data points. In the course of constructing your own charts, you'll set the properties Subsets and Points which define the quantity of data your chart will hold. You'll then pass data via the YData[subset, point] two dimensional property array. The following section shows example code of passing data. Note, if we were constructing a Scientific Graph (PESGraph1), we'd also set XData[subset, point].
ProEssentials uses the terms Subsets and Points but you can think of these as Rows and Columns. Passing data is as simple as filling each Subset with Points worth of data.
|
Unit1.pas... |
Use Delphi's Object Inspector to add the TForm1 FormShow event handler to the project.
Double clicking OnShow will auto generate this handler. |

|
Enter the code as shown below. Try to write a few lines that use enums to see Delphi's intellisense. For example typing PEGraph.PlottingMethod : should prompt the ePlottingMethod enum. If this does not work, or Pegvcl and PEGraph1 is not recognized, the Library Path setting set above likely had a mistake.
PEGraph1.MainTitle := 'Hello World';
PEGraph1.SubTitle := '';
PEGraph1.Subsets := 2;
PEGraph1.Points := 6;
PEGraph1.YData[0, 0] := 10; PEGraph1.YData[0, 1] := 30;
PEGraph1.YData[0, 2] := 20; PEGraph1.YData[0, 3] := 40;
PEGraph1.YData[0, 4] := 30; PEGraph1.YData[0, 5] := 50;
PEGraph1.YData[1, 0] := 15; PEGraph1.YData[1, 1] := 63;
PEGraph1.YData[1, 2] := 74; PEGraph1.YData[1, 3] := 54;
PEGraph1.YData[1, 4] := 25; PEGraph1.YData[1, 5] := 34;
PEGraph1.PointLabels[0] := 'Jan'; PEGraph1.PointLabels[1] := 'Feb';
PEGraph1.PointLabels[2] := 'Mar'; PEGraph1.PointLabels[3] := 'Apr';
PEGraph1.PointLabels[4] := 'May'; PEGraph1.PointLabels[5] := 'June';
PEGraph1.SubsetLabels[0] := 'For .Net Framework';
PEGraph1.SubsetLabels[1] := 'or MFC, ActiveX, VCL';
PEGraph1.YAxisLabel := 'Simple Quality Rendering';
PEGraph1.SubsetColors[0] := PEGraph1.PEargb(60, 0, 180, 0);
PEGraph1.SubsetColors[1] := PEGraph1.PEargb(180, 0, 0, 130);
PEGraph1.BitmapGradientMode := false;
PEGraph1.QuickStyle := gLightShadow;
PEGraph1.GraphPlusTable := gGraphPlusTable;
PEGraph1.DataPrecision := gNoDecimals;
PEGraph1.LabelBold := true;
PEGraph1.PlottingMethod := gBar;
PEGraph1.GradientBars := 8;
PEGraph1.BarGlassEffect := true;
PEGraph1.LegendLocation := gLegendLeft;
PEGraph1.DataShadows := gWithThreeD;
PEGraph1.FontSize := gLarge;
PEGraph1.PrepareImages := true;
PEGraph1.CacheBmp := true;
PEGraph1.RenderEngine := gDirect2D;
PEGraph1.AntiAliasGraphics := true;
PEGraph1.AntiAliasText := true;
PEGraph1.AllowDataHotSpots := true;
PEGraph1.PEactions := gReinitAndReset;
|
|
MainTitle and SubTitle are set first. Note that setting SubTitle to an empty string hides the subtitle.
Subsets and Points define the amount of data you'll be passing.
Next, we pass some random data into the YData[s,p] two dimensional property array.
PointLabels[0] sets the first data point label located below axis.
SubsetLabels[0] sets the first subset label.
Next, we set various other properties controlling visual aspects, and enable flicker free updates with PrepareImages.
Finally PEactions is set to gReinitAndReset which tells ProEssentials to initialize and resetimage the image, in other words, you're done setting properties.
Your code window will look similar to below...

|
Results... |
Congratulations... |
 |
Run your project and you'll see the resulting form.
Congratulations, you've just completed your first Delphi / ProEssentials implementation.
|
|