home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / AddOns / Components / TEECHART / Delphi1_And_Delphi2 / EXAMPLES / EXTENDED / UCUSDRAW.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-10-24  |  2.6 KB  |  98 lines

  1. unit Ucusdraw;
  2.  
  3. interface
  4.  
  5. { This example is a basic introduction to custom drawing
  6.   using the Chart1.Canvas
  7. }
  8. uses
  9.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  10.   Forms, Dialogs, TeEngine, Series, StdCtrls, Buttons, ExtCtrls, TeeProcs,
  11.   Chart;
  12.  
  13. type
  14.   TCustomDrawForm = class(TForm)
  15.     Chart1: TChart;
  16.     Series1: TBarSeries;
  17.     CheckBox1: TCheckBox;
  18.     Button1: TButton;
  19.     CheckBox2: TCheckBox;
  20.     procedure FormCreate(Sender: TObject);
  21.     procedure Series1AfterDrawValues(Sender: TObject);
  22.     procedure CheckBox1Click(Sender: TObject);
  23.     procedure Button1Click(Sender: TObject);
  24.     procedure CheckBox2Click(Sender: TObject);
  25.   private
  26.     { Private declarations }
  27.   public
  28.     { Public declarations }
  29.   end;
  30.  
  31. var
  32.   CustomDrawForm: TCustomDrawForm;
  33.  
  34. implementation
  35.  
  36. {$R *.DFM}
  37.  
  38. procedure TCustomDrawForm.FormCreate(Sender: TObject);
  39. begin
  40.   { hide vertical grid lines... }
  41.   Chart1.BottomAxis.Grid.Visible:=False;
  42.   { fill Series1 with sample date-time values... }
  43.   With Series1 do
  44.   begin
  45.     XValues.DateTime:=True;
  46.     Clear;
  47.     AddXY( EncodeDate( 1997,1,1 ), 100, '', clTeeColor );
  48.     AddXY( EncodeDate( 1997,2,1 ), 200, '', clTeeColor );
  49.     AddXY( EncodeDate( 1997,3,1 ), 300, '', clTeeColor );
  50.     AddXY( EncodeDate( 1997,4,1 ), 200, '', clTeeColor );
  51.     AddXY( EncodeDate( 1997,5,1 ), 100, '', clTeeColor );
  52.     AddXY( EncodeDate( 1997,6,1 ), 200, '', clTeeColor );
  53.     AddXY( EncodeDate( 1997,7,1 ), 300, '', clTeeColor );
  54.   end;
  55. end;
  56.  
  57. procedure TCustomDrawForm.Series1AfterDrawValues(Sender: TObject);
  58. var tmp:Integer;
  59. begin
  60.   if CheckBox1.Checked then  { <-- draw lines ? }
  61.   begin
  62.     With Chart1.Canvas do  { <-- use Canvas }
  63.     begin
  64.       { set pen properties, psDot works only with Width:=1 }
  65.       Pen.Style:=psDot;
  66.       Pen.Width:=1;
  67.       Pen.Color:=clWhite;
  68.  
  69.       { draw one line }
  70.       tmp:=Chart1.BottomAxis.CalcXPosValue( EncodeDate( 1997, 3, 15 ) );
  71.       MoveTo( tmp, Chart1.ChartRect.Bottom );
  72.       LineTo( tmp, Chart1.ChartRect.Top );
  73.  
  74.       { draw another }
  75.       tmp:=Chart1.BottomAxis.CalcXPosValue( EncodeDate( 1997, 6, 2 ) );
  76.       MoveTo( tmp, Chart1.ChartRect.Bottom );
  77.       LineTo( tmp, Chart1.ChartRect.Top );
  78.     end;
  79.   end;
  80. end;
  81.  
  82. procedure TCustomDrawForm.CheckBox1Click(Sender: TObject);
  83. begin
  84.   Chart1.Repaint;  { <-- show/hide lines... }
  85. end;
  86.  
  87. procedure TCustomDrawForm.Button1Click(Sender: TObject);
  88. begin
  89.   Close;
  90. end;
  91.  
  92. procedure TCustomDrawForm.CheckBox2Click(Sender: TObject);
  93. begin
  94.   Chart1.View3D:=CheckBox2.Checked;
  95. end;
  96.  
  97. end.
  98.