home *** CD-ROM | disk | FTP | other *** search
- unit Axis_OpaqueZone;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- Base, StdCtrls, TeEngine, TeeTools, Series, ExtCtrls, TeeProcs, Chart;
-
- type
- TAxisOpaqueZone = class(TBaseForm)
- Series1: TLineSeries;
- Series2: TLineSeries;
- Series4: TLineSeries;
- Series3: TLineSeries;
- ChartTool1: TColorLineTool;
- ChartTool2: TColorLineTool;
- ChartTool3: TColorLineTool;
- CheckBox1: TCheckBox;
- ScrollBar1: TScrollBar;
- Label1: TLabel;
- procedure FormCreate(Sender: TObject);
- procedure Chart1Scroll(Sender: TObject);
- procedure CheckBox1Click(Sender: TObject);
- procedure ScrollBar1Change(Sender: TObject);
- private
- { Private declarations }
- procedure SeriesAfterDraw(Sender: TObject);
- procedure SeriesBeforeDraw(Sender: TObject);
- public
- { Public declarations }
- end;
-
- implementation
-
- {$R *.DFM}
-
- procedure TAxisOpaqueZone.FormCreate(Sender: TObject);
- begin
- inherited;
- Series1.FillSampleValues(100);
- Series2.FillSampleValues(100);
- Series3.FillSampleValues(100);
- Series4.FillSampleValues(100);
-
- { set series events (can also be done with the Object Inspector) }
- Series1.BeforeDrawValues:=SeriesBeforeDraw;
- Series2.BeforeDrawValues:=SeriesBeforeDraw;
- Series3.BeforeDrawValues:=SeriesBeforeDraw;
- Series4.BeforeDrawValues:=SeriesBeforeDraw;
-
- Series1.AfterDrawValues:=SeriesAfterDraw;
- Series2.AfterDrawValues:=SeriesAfterDraw;
- Series3.AfterDrawValues:=SeriesAfterDraw;
- Series4.AfterDrawValues:=SeriesAfterDraw;
- end;
-
- procedure TAxisOpaqueZone.SeriesBeforeDraw(Sender: TObject);
-
- Function SeriesRect(Series:TChartSeries):TRect;
- begin
- With result do
- begin
- Left:=Series.GetHorizAxis.IStartPos;
- Right:=Series.GetHorizAxis.IEndPos;
- Top:=Series.GetVertAxis.IStartPos;
- Bottom:=Series.GetVertAxis.IEndPos;
- end;
- end;
-
- begin
- { make opaque }
- if CheckBox1.Checked then
- With Chart1 do
- if CanClip then
- Canvas.ClipRectangle(SeriesRect( Sender as TChartSeries ));
- end;
-
- procedure TAxisOpaqueZone.SeriesAfterDraw(Sender: TObject);
- begin
- if CheckBox1.Checked then Chart1.Canvas.UnClipRectangle;
- end;
-
- procedure TAxisOpaqueZone.Chart1Scroll(Sender: TObject);
- begin
- With ChartTool1 do Value:=Axis.Minimum;
- With ChartTool2 do Value:=Axis.Minimum;
- With ChartTool3 do Value:=Axis.Minimum;
- end;
-
- procedure TAxisOpaqueZone.CheckBox1Click(Sender: TObject);
- begin
- Chart1.Repaint;
- end;
-
- procedure TAxisOpaqueZone.ScrollBar1Change(Sender: TObject);
-
- Procedure DoScroll(Series:TChartSeries);
- var tmp : Double;
- begin
- With Series,YValues do
- begin
- tmp:=(ScrollBar1.Position-50)*(MaxValue-MinValue)/100;
- GetVertAxis.SetMinMax(MaxValue+tmp,MinValue+tmp);
- end;
- end;
-
- begin
- DoScroll(Series1);
- DoScroll(Series2);
- DoScroll(Series3);
- DoScroll(Series4);
-
- Chart1Scroll(Self);
- end;
-
- initialization
- RegisterClass(TAxisOpaqueZone);
- end.
-