home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 25: Programming / pc_actual_25.iso / Delphi / TeeChartPro / TeeChart5Delphi5Eval.exe / %MAINDIR% / Examples / Features / Pointer_DrawCanvas.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-09-10  |  2.2 KB  |  97 lines

  1. {$I TeeDefs.inc}
  2. unit Pointer_DrawCanvas;
  3.  
  4. interface
  5.  
  6. uses
  7.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  8.   Base, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls
  9.   {$IFDEF CLX}, Types{$ENDIF};
  10.  
  11. type
  12.   TPointerDrawCanvas = class(TBaseForm)
  13.     Series1: TPointSeries;
  14.     Label1: TLabel;
  15.     PaintBox1: TPaintBox;
  16.     Button1: TButton;
  17.     CheckBox1: TCheckBox;
  18.     procedure FormCreate(Sender: TObject);
  19.     procedure Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
  20.       Y: Integer);
  21.     procedure PaintBox1Paint(Sender: TObject);
  22.     procedure Button1Click(Sender: TObject);
  23.     procedure CheckBox1Click(Sender: TObject);
  24.   private
  25.     { Private declarations }
  26.   public
  27.     { Public declarations }
  28.   end;
  29.  
  30. implementation
  31.  
  32. {$R *.DFM}
  33.  
  34. Uses TeCanvas, EditChar;
  35.  
  36. procedure TPointerDrawCanvas.FormCreate(Sender: TObject);
  37. begin
  38.   inherited;
  39.   Series1.FillSampleValues(10);
  40. end;
  41.  
  42. procedure TPointerDrawCanvas.Chart1MouseMove(Sender: TObject;
  43.   Shift: TShiftState; X, Y: Integer);
  44. begin
  45.   PaintBox1.Repaint;
  46. end;
  47.  
  48. type TPointerAccess=class(TSeriesPointer);
  49.  
  50. procedure TPointerDrawCanvas.PaintBox1Paint(Sender: TObject);
  51. var tmp:Integer;
  52.     ACanvas:TTeeCanvas3D;
  53.     P:TPoint;
  54.     AColor:TColor;
  55.     R:TRect;
  56.     XPos,YPos:Integer;
  57. begin
  58.   P:=Chart1.GetCursorPos;
  59.   tmp:=Series1.Clicked(P.X,P.Y);
  60.   if tmp<>-1 then
  61.   begin
  62.     AColor:=Series1.ValueColor[tmp];
  63.     R:=PaintBox1.ClientRect;
  64.     XPos:=(R.Left+R.Right) div 2;
  65.     YPos:=(R.Top+R.Bottom) div 2;
  66.     ACanvas:=TTeeCanvas3D.Create;
  67.     try
  68.       ACanvas.ReferenceCanvas:=PaintBox1.Canvas;
  69.       With TPointerAccess(Series1.Pointer) do
  70.       begin
  71.         PrepareCanvas(ACanvas,AColor);
  72.         DrawPointer(ACanvas,Chart1.View3D,
  73.                     XPos,YPos,
  74.                     HorizSize,VertSize,
  75.                     AColor,
  76.                     Series1.Pointer.Style);
  77.       end;
  78.     finally
  79.       ACanvas.Free;
  80.     end;
  81.   end;
  82. end;
  83.  
  84. procedure TPointerDrawCanvas.Button1Click(Sender: TObject);
  85. begin
  86.   EditSeries(Self,Series1);
  87. end;
  88.  
  89. procedure TPointerDrawCanvas.CheckBox1Click(Sender: TObject);
  90. begin
  91.   Chart1.View3D:=CheckBox1.Checked
  92. end;
  93.  
  94. initialization
  95.   RegisterClass(TPointerDrawCanvas);
  96. end.
  97.