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

  1. {****************************************}
  2. {    TPieSeries Editor Dialog            }
  3. { Copyright (c) 1996-98 by David Berneda }
  4. {****************************************}
  5. {$I teedefs.inc}
  6. unit PieEdit;
  7.  
  8. interface
  9.  
  10. uses
  11.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  12.   Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Chart, Series
  13.   {$IFDEF D1}
  14.   , TeeUpDow, Spin
  15.   {$ELSE}
  16.   , ComCtrls
  17.   {$ENDIF};
  18.  
  19. type
  20.   TPieSeriesEditor = class(TForm)
  21.     CBCircled: TCheckBox;
  22.     CB3D: TCheckBox;
  23.     SERotation: TEdit;
  24.     Label1: TLabel;
  25.     BPiePen: TButton;
  26.     CBPatterns: TCheckBox;
  27.     BBackPieColor: TBitBtn;
  28.     GroupBox1: TGroupBox;
  29.     Label2: TLabel;
  30.     SEXRadius: TEdit;
  31.     CBAutoXR: TCheckBox;
  32.     Label3: TLabel;
  33.     SEYRadius: TEdit;
  34.     CBAutoYR: TCheckBox;
  35.     CBDark3d: TCheckBox;
  36.     Label4: TLabel;
  37.     GroupBox2: TGroupBox;
  38.     Label5: TLabel;
  39.     CBOther: TComboBox;
  40.     Label6: TLabel;
  41.     EOtherValue: TEdit;
  42.     Label7: TLabel;
  43.     EOtherLabel: TEdit;
  44.     SEExpBig: TEdit;
  45.     UDYRadius: TUpDown;
  46.     UDXRadius: TUpDown;
  47.     UDExpBig: TUpDown;
  48.     UDRotation: TUpDown;
  49.     Label8: TLabel;
  50.     CBOrder: TComboBox;
  51.     procedure FormShow(Sender: TObject);
  52.     procedure CBCircledClick(Sender: TObject);
  53.     procedure CB3DClick(Sender: TObject);
  54.     procedure SERotationChange(Sender: TObject);
  55.     procedure BPiePenClick(Sender: TObject);
  56.     procedure CBDark3dClick(Sender: TObject);
  57.     procedure SEXRadiusChange(Sender: TObject);
  58.     procedure SEYRadiusChange(Sender: TObject);
  59.     procedure CBPatternsClick(Sender: TObject);
  60.     procedure BBackPieColorClick(Sender: TObject);
  61.     procedure CBAutoXRClick(Sender: TObject);
  62.     procedure CBAutoYRClick(Sender: TObject);
  63.     procedure CBOtherChange(Sender: TObject);
  64.     procedure EOtherValueChange(Sender: TObject);
  65.     procedure EOtherLabelChange(Sender: TObject);
  66.     procedure SEExpBigChange(Sender: TObject);
  67.     procedure FormCreate(Sender: TObject);
  68.     procedure CBOrderChange(Sender: TObject);
  69.   private
  70.     { Private declarations }
  71.     CreatingForm:Boolean;
  72.     Pie:TPieSeries;
  73.   public
  74.     { Public declarations }
  75.   end;
  76.  
  77. implementation
  78.  
  79. {$R *.DFM}
  80. Uses Teengine, PenDlg;
  81.  
  82. procedure TPieSeriesEditor.FormShow(Sender: TObject);
  83. begin
  84.   Screen.Cursor:=crDefault;
  85.   Pie:=TPieSeries(Tag);
  86.   With Pie do
  87.   begin
  88.     CBCircled.Checked:=Circled;
  89.     if (ParentChart<>nil) then CB3D.Checked:=ParentChart.View3d
  90.                           else CB3D.Enabled:=False;
  91.     UDExpBig.Position     :=ExplodeBiggest;
  92.     UDRotation.Position   :=RotationAngle;
  93.     CBDark3D.Checked      :=Dark3D;
  94.     CBPatterns.Checked    :=UsePatterns;
  95.     BBackPieColor.Enabled :=UsePatterns;
  96.     UDXRadius.Position    :=CustomXRadius;
  97.     UDYRadius.Position    :=CustomYRadius;
  98.     With OtherSlice do
  99.     begin
  100.       EOtherLabel.Text:=Text;
  101.       EOtherValue.Text:=FloatToStr(Value);
  102.       CBOther.ItemIndex:=Ord(Style);
  103.       EnableControls(Style<>poNone,[EOtherLabel,EOtherValue]);
  104.     end;
  105.     Case PieValues.Order of
  106.       loNone:       CBOrder.ItemIndex:=0;
  107.       loAscending:  CBOrder.ItemIndex:=1;
  108.       loDescending: CBOrder.ItemIndex:=2;
  109.     end;
  110.   end;
  111.   CreatingForm:=False;
  112. end;
  113.  
  114. procedure TPieSeriesEditor.CBCircledClick(Sender: TObject);
  115. begin
  116.   Pie.Circled:=CBCircled.Checked;
  117. end;
  118.  
  119. procedure TPieSeriesEditor.CB3DClick(Sender: TObject);
  120. begin
  121.   if (Pie.ParentChart<>nil) then
  122.   Begin
  123.     Pie.ParentChart.View3d:=CB3d.Checked;
  124.   end;
  125. end;
  126.  
  127. procedure TPieSeriesEditor.SERotationChange(Sender: TObject);
  128. begin
  129.   if not CreatingForm then Pie.RotationAngle:=UDRotation.Position;
  130. end;
  131.  
  132. procedure TPieSeriesEditor.BPiePenClick(Sender: TObject);
  133. begin
  134.   EditChartPen(Self,Pie.PiePen);
  135. end;
  136.  
  137. procedure TPieSeriesEditor.CBDark3dClick(Sender: TObject);
  138. begin
  139.   if not CreatingForm then Pie.Dark3D:=CBDark3D.Checked;
  140. end;
  141.  
  142. procedure TPieSeriesEditor.SEXRadiusChange(Sender: TObject);
  143. begin
  144.   if not CreatingForm then
  145.   begin
  146.     Pie.CustomXRadius:=UDXRadius.Position;
  147.     CBAutoXR.Checked:=UDXRadius.Position=0;
  148.   end;
  149. end;
  150.  
  151. procedure TPieSeriesEditor.SEYRadiusChange(Sender: TObject);
  152. begin
  153.   if not CreatingForm then
  154.   begin
  155.     Pie.CustomYRadius:=UDYRadius.Position;
  156.     CBAutoYR.Checked:=UDYRadius.Position=0;
  157.   end;
  158. end;
  159.  
  160. procedure TPieSeriesEditor.CBPatternsClick(Sender: TObject);
  161. begin
  162.   Pie.UsePatterns:=CBPatterns.Checked;
  163.   BBackPieColor.Enabled:=Pie.UsePatterns;
  164. end;
  165.  
  166. procedure TPieSeriesEditor.BBackPieColorClick(Sender: TObject);
  167. begin
  168.   Pie.CircleBackColor:=EditColor(Self,Pie.CircleBackColor);
  169. end;
  170.  
  171. procedure TPieSeriesEditor.CBAutoXRClick(Sender: TObject);
  172. begin
  173.   if CBAutoXR.Checked then UDXRadius.Position:=0;
  174. end;
  175.  
  176. procedure TPieSeriesEditor.CBAutoYRClick(Sender: TObject);
  177. begin
  178.   if CBAutoYR.Checked then UDYRadius.Position:=0;
  179. end;
  180.  
  181. procedure TPieSeriesEditor.CBOtherChange(Sender: TObject);
  182. begin
  183.   With Pie.OtherSlice do
  184.   begin
  185.     Style:=TPieOtherStyle(CBOther.ItemIndex);
  186.     EnableControls(Style<>poNone,[EOtherLabel,EOtherValue]);
  187.   end;
  188. end;
  189.  
  190. procedure TPieSeriesEditor.EOtherValueChange(Sender: TObject);
  191. begin
  192.   if EOtherValue.Text<>'' then
  193.      Pie.OtherSlice.Value:=StrToFloat(EOtherValue.Text);
  194. end;
  195.  
  196. procedure TPieSeriesEditor.EOtherLabelChange(Sender: TObject);
  197. begin
  198.   Pie.OtherSlice.Text:=EOtherLabel.Text;
  199. end;
  200.  
  201. procedure TPieSeriesEditor.SEExpBigChange(Sender: TObject);
  202. begin
  203.   if not CreatingForm then Pie.ExplodeBiggest:=UDExpBig.Position;
  204. end;
  205.  
  206. procedure TPieSeriesEditor.FormCreate(Sender: TObject);
  207. begin
  208.   CreatingForm:=True;
  209. end;
  210.  
  211. procedure TPieSeriesEditor.CBOrderChange(Sender: TObject);
  212. begin
  213.   if CBOrder.ItemIndex<>0 then
  214.   With Pie,PieValues do
  215.   begin
  216.     Case CBOrder.ItemIndex of
  217.       1: Order:=loAscending;
  218.       2: Order:=loDescending;
  219.     end;
  220.     Sort;
  221.     Repaint
  222.   end;
  223. end;
  224.  
  225. initialization
  226.   RegisterClass(TPieSeriesEditor);
  227. end.
  228.