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

  1. unit TeeCustomShape;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   Base, ExtCtrls, TeeProcs, TeEngine, Chart, StdCtrls;
  8.  
  9. type
  10.   TCustomShape = class(TBaseForm)
  11.     Button1: TButton;
  12.     ScrollBar1: TScrollBar;
  13.     Label1: TLabel;
  14.     ScrollBar2: TScrollBar;
  15.     Label2: TLabel;
  16.     procedure Chart1AfterDraw(Sender: TObject);
  17.     procedure FormCreate(Sender: TObject);
  18.     procedure FormDestroy(Sender: TObject);
  19.     procedure Button1Click(Sender: TObject);
  20.     procedure ScrollBar1Change(Sender: TObject);
  21.     procedure Chart1MouseDown(Sender: TObject; Button: TMouseButton;
  22.       Shift: TShiftState; X, Y: Integer);
  23.     procedure Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
  24.       Y: Integer);
  25.     procedure ScrollBar2Change(Sender: TObject);
  26.   private
  27.     { Private declarations }
  28.   public
  29.     { Public declarations }
  30.     Shape : TTeeShape;
  31.   end;
  32.  
  33. implementation
  34.  
  35. {$R *.DFM}
  36. Uses TeCanvas, TeeCustomShapeEditor;
  37.  
  38. procedure TCustomShape.Chart1AfterDraw(Sender: TObject);
  39. begin
  40.   Shape.Draw;
  41.   With Chart1.Canvas do
  42.   begin
  43.     AssignFont(Shape.Font);
  44.     BackMode:=cbmTransparent;
  45.     TextOut(Shape.ShapeBounds.Left+10,Shape.ShapeBounds.Top+10,'Hello World !');
  46.   end;
  47. end;
  48.  
  49. procedure TCustomShape.FormCreate(Sender: TObject);
  50. Const clOrange=$0080FF;
  51. begin
  52.   inherited;
  53.   Shape:=TTeeShape.Create(Chart1);
  54.   Shape.ShapeBounds:=Rect(50,50,130,90);
  55.   Shape.Gradient.Visible:=True;
  56.   Shape.Gradient.MidColor:=clOrange;
  57.   Shape.Gradient.EndColor:=clDkGray;
  58.   Shape.Bevel:=bvRaised;
  59.   Shape.BevelWidth:=3;
  60.   Shape.Font.Color:=clNavy;
  61.   Shape.Font.Shadow.HorizSize:=1;
  62.   Shape.Font.Shadow.VertSize:=1;
  63. end;
  64.  
  65. procedure TCustomShape.FormDestroy(Sender: TObject);
  66. begin
  67.   inherited;
  68.   Shape.Free;
  69. end;
  70.  
  71. procedure TCustomShape.Button1Click(Sender: TObject);
  72. begin
  73.   With TFormTeeShape.Create(Self) do
  74.   try
  75.     BorderStyle:=bsDialog;
  76.     TheShape:=Shape;
  77.     ShowModal;
  78.   finally
  79.     Free;
  80.   end;
  81. end;
  82.  
  83. procedure TCustomShape.ScrollBar1Change(Sender: TObject);
  84. begin
  85.   With Shape.ShapeBounds do
  86.   begin
  87.     Left:=ScrollBar1.Position;
  88.     Right:=Left+80;
  89.   end;
  90.   Chart1.Invalidate;
  91. end;
  92.  
  93. procedure TCustomShape.Chart1MouseDown(Sender: TObject;
  94.   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  95. begin
  96.   if PtInRect(Shape.ShapeBounds,Point(x,y)) then
  97.   begin
  98.     ShowMessage('Touche!');
  99.     Chart1.CancelMouse:=True;
  100.   end;
  101. end;
  102.  
  103. procedure TCustomShape.Chart1MouseMove(Sender: TObject; Shift: TShiftState;
  104.   X, Y: Integer);
  105. begin
  106.   if PtInRect(Shape.ShapeBounds,Point(x,y)) then
  107.      Chart1.Cursor:=crHandPoint
  108.   else
  109.      Chart1.Cursor:=crDefault;
  110.   Chart1.OriginalCursor:=Chart1.Cursor;
  111. end;
  112.  
  113. procedure TCustomShape.ScrollBar2Change(Sender: TObject);
  114. begin
  115.   With Shape.ShapeBounds do
  116.   begin
  117.     Top:=ScrollBar2.Position;
  118.     Bottom:=Top+40;
  119.   end;
  120.   Chart1.Invalidate;
  121. end;
  122.  
  123. initialization
  124.   RegisterClass(TCustomShape);
  125. end.
  126.