home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC Expert 29
/
Pce29cd.iso
/
RUNIMAGE
/
DELPHI40
/
DEMOS
/
TEECHART
/
UOVERBAR.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1998-06-16
|
4KB
|
139 lines
{*********************************************}
{ TeeChart Delphi Component Library }
{ Overlayed Bars Demo }
{ Copyright (c) 1995-1996 by David Berneda }
{ All rights reserved }
{*********************************************}
unit Uoverbar;
interface
{ This form shows 3 bar series in a overlayed layout.
Each Bar Series has a different BarWidthPercent.
The order Series are drawn is the most important thing. See below.
}
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Chart, Series, ExtCtrls, Teengine, StdCtrls, Spin,
Buttons, TeeProcs;
type
TOverBarForm = class(TForm)
Chart1: TChart;
BarSeries1: TBarSeries;
BarSeries2: TBarSeries;
BarSeries3: TBarSeries;
Panel1: TPanel;
Memo1: TMemo;
BitBtn3: TBitBtn;
Label1: TLabel;
SpinEdit1: TSpinEdit;
Label2: TLabel;
SpinEdit2: TSpinEdit;
CBPatterns: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure BarSeries2Click(Sender: TChartSeries; ValueIndex: Integer;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure BarSeries1Click(Sender: TChartSeries; ValueIndex: Integer;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure SpinEdit1Change(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure CBPatternsClick(Sender: TObject);
procedure BarSeries3Click(Sender: TChartSeries; ValueIndex: Integer;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
procedure ChangeOverBars;
end;
var
OverBarForm: TOverBarForm;
implementation
{$R *.DFM}
procedure TOverBarForm.FormCreate(Sender: TObject);
var t:Longint;
begin
{ lets fill the 3 Bar Series with some random data }
{ Series3 has the biggest values, while Series1 has the smaller values }
With BarSeries3 do
begin
Clear;
for t:=1 to 10 do Add( 100+Random(30),'', clTeeColor);
end;
With BarSeries2 do
begin
Clear;
for t:=1 to 10 do Add( 50+Random(10), '', clTeeColor);
end;
With BarSeries1 do
begin
Clear;
for t:=1 to 10 do Add( 20+Random(10), '', clTeeColor);
end;
ChangeOverBars;
end;
procedure TOverBarForm.BarSeries2Click(Sender: TChartSeries; ValueIndex: Integer;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Showmessage('You clicked the Red Bar at point #: '+inttostr(Valueindex));
end;
procedure TOverBarForm.BarSeries1Click(Sender: TChartSeries; ValueIndex: Integer;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Showmessage('You clicked the Green Bar at point #: '+inttostr(Valueindex));
end;
procedure TOverBarForm.ChangeOverBars;
begin { compress / expand the overlayed space between bars }
BarSeries3.BarWidthPercent:=SpinEdit1.Value;
BarSeries1.BarWidthPercent:=SpinEdit1.Value-Round(SpinEdit1.Value*55.0/100.0);
BarSeries2.BarWidthPercent:=SpinEdit1.Value-Round(SpinEdit1.Value*35.0/100.0);
end;
procedure TOverBarForm.SpinEdit1Change(Sender: TObject);
begin
ChangeOverBars;
end;
procedure TOverBarForm.SpinEdit2Change(Sender: TObject);
begin { increase / decrease the 3 Series OffsetPercent property }
{ This will make partially overlay }
BarSeries3.OffsetPercent:=SpinEdit2.Value;
BarSeries1.OffsetPercent:=SpinEdit2.Value-Round(SpinEdit2.Value*55.0/100.0);
BarSeries2.OffsetPercent:=SpinEdit2.Value-Round(SpinEdit2.Value*35.0/100.0);
end;
procedure TOverBarForm.CBPatternsClick(Sender: TObject);
begin
if CBPatterns.Checked then
begin
BarSeries1.BarBrush.Style:=bsFDiagonal;
BarSeries2.BarBrush.Style:=bsBDiagonal;
BarSeries3.BarBrush.Style:=bsDiagCross;
Chart1.BackColor:=clWhite;
end
else
begin
BarSeries1.BarBrush.Style:=bsSolid;
BarSeries2.BarBrush.Style:=bsSolid;
BarSeries3.BarBrush.Style:=bsSolid;
Chart1.BackColor:=clTeeColor;
end;
end;
procedure TOverBarForm.BarSeries3Click(Sender: TChartSeries;
ValueIndex: Integer; Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
begin
Showmessage('You clicked the Blue Bar at point #: '+inttostr(Valueindex));
end;
end.