Project GRAPH1
Project Structure
GRAPH1.DPR
program Graph1;
uses
Forms,
GraphF in 'GraphF.pas' {Form1};
{$R *.RES}
begin
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
GRAPHF.PAS
unit GraphF;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Grids, StdCtrls, TeEngine,
Series, ExtCtrls, TeeProcs, Chart;
type
TForm1 = class(TForm)
Chart1: TChart;
Series1: TBarSeries;
Series2: TBarSeries;
Series3: TBarSeries;
Series4: TBarSeries;
Panel1: TPanel;
ChBoxMarks: TCheckBox;
UpdateButton: TButton;
StringGrid1: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure UpdateButtonClick(Sender: TObject);
procedure StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Longint;
var Value: string);
procedure ChBoxMarksClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
I, J: Integer;
begin
with StringGrid1 do
begin
{fills the fixed column and row,
and the chart series names}
for I := 1 to 5 do
Cells [I, 0] := Format ('Group%d', [I]);
for J := 1 to 4 do
begin
Cells [0, J] := Format ('Series%d', [J]);
Chart1.Series [J-1].Title := Format ('Series%d', [J]);
end;
// fills the grid with random values
Randomize;
for I := 1 to 5 do
for J := 1 to 4 do
Cells [I, J] := IntToStr (Random (100));
end; // with
// update the chart
UpdateButtonClick (Self);
end;
procedure TForm1.UpdateButtonClick(Sender: TObject);
var
I, J: Integer;
begin
for I := 1 to 4 do
begin
Chart1.Series [I-1].Clear;
for J := 1 to 5 do
Chart1.Series [I-1].Add (
StrToInt (StringGrid1.Cells [J, I]),
'', Chart1.Series [I-1].SeriesColor);
end;
end;
procedure TForm1.StringGrid1GetEditMask(Sender: TObject; ACol,
ARow: Longint; var Value: string);
begin
// edit mask for the grid cells
Value := '09;0';
end;
procedure TForm1.ChBoxMarksClick(Sender: TObject);
var
I: Integer;
begin
for I := 1 to 4 do
Chart1.Series [I-1].Marks.Visible :=
ChBoxMarks.Checked;
end;
end.
GRAPHF.DFM
object Form1: TForm1
Left = 188
Top = 82
Width = 485
Height = 462
Caption = 'Graph'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = True
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Chart1: TChart
Left = 0
Top = 0
Width = 477
Height = 291
AnimatedZoom = True
BackWall.Brush.Color = clWhite
BackWall.Brush.Style = bsClear
BackWall.Color = clBtnFace
Title.Text.Strings = (
'Simple TeeChart Demo for Mastering Delphi')
BackColor = clBtnFace
Align = alClient
BevelOuter = bvLowered
TabOrder = 0
object Series1: TBarSeries
Marks.ArrowLength = 20
Marks.Visible = False
SeriesColor = clRed
XValues.DateTime = False
XValues.Name = 'X'
XValues.Multiplier = 1
XValues.Order = loAscending
YValues.DateTime = False
YValues.Name = 'Bar'
YValues.Multiplier = 1
YValues.Order = loNone
end
object Series2: TBarSeries
Marks.ArrowLength = 20
Marks.Visible = False
SeriesColor = clGreen
XValues.DateTime = False
XValues.Name = 'X'
XValues.Multiplier = 1
XValues.Order = loAscending
YValues.DateTime = False
YValues.Name = 'Bar'
YValues.Multiplier = 1
YValues.Order = loNone
end
object Series3: TBarSeries
Marks.ArrowLength = 20
Marks.Visible = False
SeriesColor = clYellow
XValues.DateTime = False
XValues.Name = 'X'
XValues.Multiplier = 1
XValues.Order = loAscending
YValues.DateTime = False
YValues.Name = 'Bar'
YValues.Multiplier = 1
YValues.Order = loNone
end
object Series4: TBarSeries
Marks.ArrowLength = 20
Marks.Visible = False
SeriesColor = clBlue
XValues.DateTime = False
XValues.Name = 'X'
XValues.Multiplier = 1
XValues.Order = loAscending
YValues.DateTime = False
YValues.Name = 'Bar'
YValues.Multiplier = 1
YValues.Order = loNone
end
end
object Panel1: TPanel
Left = 0
Top = 291
Width = 477
Height = 144
Align = alBottom
BevelOuter = bvLowered
TabOrder = 1
object ChBoxMarks: TCheckBox
Left = 352
Top = 82
Width = 57
Height = 17
Caption = 'Marks'
TabOrder = 0
OnClick = ChBoxMarksClick
end
object UpdateButton: TButton
Left = 336
Top = 37
Width = 89
Height = 30
Caption = '&Update'
TabOrder = 1
OnClick = UpdateButtonClick
end
object StringGrid1: TStringGrid
Left = 8
Top = 8
Width = 309
Height = 128
ColCount = 6
DefaultColWidth = 50
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goEditing]
ScrollBars = ssNone
TabOrder = 2
OnGetEditMask = StringGrid1GetEditMask
end
end
end
|