home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / AddOns / Components / TEECHART / Src Code / IEDI3D.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-10-24  |  5.4 KB  |  198 lines

  1. {**********************************************}
  2. {   TeeChart Pro 3D editor options             }
  3. {   Copyright (c) 1998 by David Berneda        }
  4. {**********************************************}
  5. {$I teedefs.inc}
  6. unit IEdi3D;
  7.  
  8. interface
  9.  
  10. uses
  11.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  12.   StdCtrls, Chart, ComCtrls;
  13.  
  14. type
  15.   TFormTee3D = class(TForm)
  16.     GB3D: TGroupBox;
  17.     L13: TLabel;
  18.     L4: TLabel;
  19.     L35: TLabel;
  20.     L36: TLabel;
  21.     CBView3d: TCheckBox;
  22.     SE3d: TEdit;
  23.     CBOrthogonal: TCheckBox;
  24.     SBZoom: TScrollBar;
  25.     LZoom: TLabel;
  26.     SBRotation: TScrollBar;
  27.     SBElevation: TScrollBar;
  28.     LRotation: TLabel;
  29.     LElevation: TLabel;
  30.     Label1: TLabel;
  31.     SBHOffset: TScrollBar;
  32.     LHOffset: TLabel;
  33.     Label3: TLabel;
  34.     SBVOffset: TScrollBar;
  35.     LVOffset: TLabel;
  36.     UD3D: TUpDown;
  37.     CBZoomText: TCheckBox;
  38.     Label2: TLabel;
  39.     SBPerspec: TScrollBar;
  40.     LPerspec: TLabel;
  41.     procedure CBOrthogonalClick(Sender: TObject);
  42.     procedure SBZoomChange(Sender: TObject);
  43.     procedure SBRotationChange(Sender: TObject);
  44.     procedure SBElevationChange(Sender: TObject);
  45.     procedure CBView3dClick(Sender: TObject);
  46.     procedure FormShow(Sender: TObject);
  47.     procedure SBHOffsetChange(Sender: TObject);
  48.     procedure SBVOffsetChange(Sender: TObject);
  49.     procedure SE3dChange(Sender: TObject);
  50.     procedure FormCreate(Sender: TObject);
  51.     procedure CBZoomTextClick(Sender: TObject);
  52.     procedure SBPerspecChange(Sender: TObject);
  53.   private
  54.     { Private declarations }
  55.   public
  56.     { Public declarations }
  57.     TheChart      : TCustomChart;
  58.     AllowRotation : Boolean;
  59.     CreatingForm  : Boolean;
  60.     Constructor CreateChart(AOwner:TComponent; AChart:TCustomChart);
  61.     Procedure CheckRotation;
  62.   end;
  63.  
  64. implementation
  65.  
  66. {$R *.DFM}
  67. uses TeCanvas;
  68.  
  69. Constructor TFormTee3D.CreateChart(AOwner:TComponent; AChart:TCustomChart);
  70. begin
  71.   inherited Create(AOwner);
  72.   TheChart:=AChart;
  73. end;
  74.  
  75. Procedure TFormTee3D.CheckRotation;
  76. begin
  77.   With TheChart do
  78.   begin
  79.     CBOrthogonal.Enabled:=View3D and AllowRotation;
  80.     SBRotation.Enabled  :=CBOrthogonal.Enabled and (not View3DOptions.Orthogonal);
  81.   end;
  82. end;
  83.  
  84. procedure TFormTee3D.CBOrthogonalClick(Sender: TObject);
  85. begin
  86.   With TheChart.View3DOptions do
  87.   begin
  88.     Orthogonal:=CBOrthogonal.Checked;
  89.     SBRotation.Enabled:=(not Orthogonal) and AllowRotation;
  90.     SBElevation.Enabled:=not Orthogonal;
  91.     SBPerspec.Enabled:=not Orthogonal;
  92.   end;
  93. end;
  94.  
  95. procedure TFormTee3D.SBZoomChange(Sender: TObject);
  96. begin
  97.   TheChart.View3DOptions.Zoom:=SBZoom.Position;
  98.   LZoom.Caption:=IntToStr(SBZoom.Position)+'%';
  99. end;
  100.  
  101. procedure TFormTee3D.SBRotationChange(Sender: TObject);
  102. begin
  103.   TheChart.View3DOptions.Rotation:=SBRotation.Position;
  104.   LRotation.Caption:=IntToStr(SBRotation.Position);
  105. end;
  106.  
  107. procedure TFormTee3D.SBElevationChange(Sender: TObject);
  108. begin
  109.   TheChart.View3DOptions.Elevation:=SBElevation.Position;
  110.   LElevation.Caption:=IntToStr(SBElevation.Position);
  111. end;
  112.  
  113. procedure TFormTee3D.CBView3dClick(Sender: TObject);
  114. var tmp:Boolean;
  115. begin
  116.   With TheChart do
  117.   Begin
  118.     View3D              :=CBView3D.Checked;
  119.     SE3D.Enabled        :=View3D;
  120.     CBOrthogonal.Enabled:=View3D and AllowRotation;
  121.     tmp:=View3D and (not View3DOptions.Orthogonal);
  122.     SBRotation.Enabled:=tmp and AllowRotation;
  123.     SBElevation.Enabled:=tmp;
  124.     SBPerspec.Enabled:=tmp;
  125.     SBHOffset.Enabled:=View3D;
  126.     SBVOffset.Enabled:=View3D;
  127.     SBZoom.Enabled:=View3D;
  128.     CBZoomText.Enabled:=View3D;
  129.   end;
  130. end;
  131.  
  132. procedure TFormTee3D.FormShow(Sender: TObject);
  133. var tmp:Integer;
  134. begin
  135.   With TheChart do
  136.   begin
  137.     CBView3D.Checked       :=View3D;
  138.     SE3D.Enabled           :=View3D;
  139.     UD3D.Position          :=Chart3DPercent;
  140.  
  141.     if Canvas.SupportsFullRotation then tmp:=1
  142.                                    else tmp:=270;
  143.     SBRotation.Min         :=tmp;
  144.     SBElevation.Min        :=tmp;
  145.  
  146.     CBOrthogonal.Enabled   :=View3D and AllowRotation;
  147.  
  148.     With View3DOptions do
  149.     begin
  150.       SBZoom.Position        :=Zoom;
  151.       CBOrthogonal.Checked   :=Orthogonal;
  152.       SBRotation.Position    :=Rotation;
  153.       SBElevation.Position   :=Elevation;
  154.       SBHOffset.Position     :=HorizOffset;
  155.       SBVOffset.Position     :=VertOffset;
  156.       SBRotation.Enabled     :=CBOrthogonal.Enabled and (not Orthogonal);
  157.       CBZoomText.Checked     :=ZoomText;
  158.       SBPerspec.Position     :=Perspective;
  159.     end;
  160.   end;
  161.   CreatingForm:=False;
  162. end;
  163.  
  164. procedure TFormTee3D.SBHOffsetChange(Sender: TObject);
  165. begin
  166.   TheChart.View3DOptions.HorizOffset:=SBHOffset.Position;
  167.   LHOffset.Caption:=IntToStr(SBHOffset.Position);
  168. end;
  169.  
  170. procedure TFormTee3D.SBVOffsetChange(Sender: TObject);
  171. begin
  172.   TheChart.View3DOptions.VertOffset:=SBVOffset.Position;
  173.   LVOffset.Caption:=IntToStr(SBVOffset.Position);
  174. end;
  175.  
  176. procedure TFormTee3D.SE3dChange(Sender: TObject);
  177. begin
  178.   if not CreatingForm then TheChart.Chart3DPercent:=UD3D.Position;
  179. end;
  180.  
  181. procedure TFormTee3D.FormCreate(Sender: TObject);
  182. begin
  183.   CreatingForm:=True;
  184. end;
  185.  
  186. procedure TFormTee3D.CBZoomTextClick(Sender: TObject);
  187. begin
  188.   TheChart.View3DOptions.ZoomText:=CBZoomText.Checked;
  189. end;
  190.  
  191. procedure TFormTee3D.SBPerspecChange(Sender: TObject);
  192. begin
  193.   TheChart.View3DOptions.Perspective:=SBPerspec.Position;
  194.   LPerspec.Caption:=IntToStr(SBPerspec.Position);
  195. end;
  196.  
  197. end.
  198.