Delphi

 

All programs for the Microsoft platform are written in Delphi (Pascal for Windows).
Last years I have also done some programming with Kylix (the Linux version of Delphi) and Lazarus (the open source version of Delphi).
I am trying to develop cross-platform programs for both Kylix and Delphi, so I suggest you should take a look at my Kylix and Lazarus pages as well.
 
One of my first projects was a little game Lucas:
 
Click on the picture for downloading this game (in Dutch, 172 kB)
 
 
More interested in the source of this program?
Click here to get the source of the program Lucas (9 kB)
 
On the Linux pages you can get the version in C for Xforms.
 

PlotPanel
Borland released several Open Editions and Personal Editions that were free.
I tried to compile my programs with those open editions, but discovered very soon that the TChart component was missing.
So I started programming a replacement for it.
The result was the PlotPanel component:
Here is a short description of this component:
 
PlotPanel is a component for Delphi or Lazarus to replace (more or less) the TChart component.
With PlotPanel you can draw line- , dot- and bar-graphs. Animated graphs are also possible.
This software is presented as is, without any written warranty. So use the software at your own risk.
 
Installation
 
To Install the PlotPanel component in Delphi you have to do the following:
 
    * Download the PlotPanelpackage (plotpanel_d.zip (Delphi).
    * Unzip plotpanel in a directory of your choice.
    * Start Delphi
    * Perform the necessairy actions to intall the package. 
 
After you have done that all, there must be a new Tab in the component palet with the name "Extra". You can use the Plotpanel now
 
Run the PlotPanelDemo to explore the features of PlotPanel. N.B. You can try PlotPanel without installing the component by running TryPlotPanel!
 
Description of the PlotPanel component
 
This is a very rude description of the component. See the examples for an explanation of how to use the component. The PlotPanel component is derived from the TCustomPanel-component. To this Panel plotting capabilities are added.
 
Properties inherited from TCustomPanel
 
Align, Anchors, Autosize, BevelInner / Outer / Width
 
Borderspacing, BorderStyle, Borderwidth
 
Color is the color of the border of the plot
 
Constraints, Cursor, Dragmode, Enabled
 
Font is the font of the title of the plot
 
Height, HelpContext, HelpKeyword, HelpType, Hint
 
Left, Name, ParenColor, Parentfont, ParentShowHint
 
PopupMenu, ShowHint, TabOrder, TabStop
 
Tag, Top, Visible, Width
 
The following properties are added:
BackColor This is the background color of the plotting area
 
GridColor When you make this the same as Backcolor, the grid is invisible
 
LayerOption For easy plotting of a single layer this can be set to False. It is not possible to set this to True directly (see methods)
 
Margin The width of the border of the plot in pixels
 
PlotMode Three plotmodes are possible: pmBar, pmLine and pmDot
 
PlotPen Properties of the plotting pen. If LayerOption is False, then all sub-properties can be set. If LayerOption is True, then information about the plotting pen is transferred via the LayerOptions method (methods)
 
Title The Title is at the top center of the plot and uses the Font property
 
PlotBMP This is a bitmap holding the whole graph (see demo for its use)
 
 
The X-axis properties:
 
XMarks When True, the X-axis has marks
 
XMarksFont Font used for the XMarks
 
XMarksInterval Interval between to lines in the grid (applies for linear scales only)
 
XMax Maximum value of X that is visible
 
XMin Minimal value of X that is visible
 
XScaleLog When TRUE the scale is logarithmic (the interval is determined by the component)
 
 
For the Y-axis the same applies.
 
Methods:
 
AddXY(X,Y:Extended) With this method you can add points (or lines) to the plot Example for i:= -10 to 10 do PlotPanel1.AddXY(i,i*i) This plots a parbola .The line is plotted with the PlotPen properties Note you can only plot a single layer.
 
AddXY(X,Y:Extended, Color:Tcolor,Layer:Integer) With this method it is possible to plot up to 8 lines in different colors, plotmodes and penwidths (see LayerOptions how to set linewidth and plotmodes)
 
LayerOptions(Layer:Integer;PlotMode:TPlotMode;PenWidth:Integer) Every Layer can use a different Plotmode and PenWidth When you call this method LayerOPtion will be set TRUE. When you want to use a single Layer again you have to set LayerOption False! Autoscale(Layer:Integer) With this method you can adjust the size of the plot automatically
 
ClearData Clears the data on the plot.
 
ConvertS2W(x,y: Extended; var WX,WY : Extended) Converts the screen-coordinates in X,Y to the real coordinates WX,WY. When X and Y are out of bounds, the function returns False, otherwise True
 
Freeze(Boolean) When Freeze(True) is executed all plotting is done on a invisible bitmap. After a Freeze(False) the whole plot is displayed. This produces flicker-free animations.
 
HideLayer(Layer:Integer) Use this to hide a single layer in the plot
 
UnHideLayer(Layer:Integer) Shows the hidden layer again N.B. When you add points to a hidden layer, the old layer is deleted and the new points are the only points in this layer!
 
Paint Repaints the whole Graph (is done automatically by the system when necessary)
 
 
You can download this component (version 0.91) here:
 
Download plotpanel_d.zip
 
There is a new version of Plotpanel available.
The licence is changed to LGPL now.
This version also allows you to place a label at the x and y axis
A nice feature to change the Marks along X and Y axis was supplied by Jorge Solla. You can find those extentions in version 0.96:
Download plotpanel_delphi_0.96.zip
 
 
Links for Delphi:
Torry's Delphi Pages