home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 October / Chip_2001-10_cd1.bin / zkuste / delphi / kompon / d123456 / CHEMPLOT.ZIP / TPlot / Seredit.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-07-24  |  18.6 KB  |  541 lines

  1. unit Seredit;
  2.  
  3. {$I Plot.inc}
  4.  
  5. {-----------------------------------------------------------------------------
  6. The contents of this file are subject to the Q Public License
  7. ("QPL"); you may not use this file except in compliance
  8. with the QPL. You may obtain a copy of the QPL from 
  9. the file QPL.html in this distribution, derived from:
  10.  
  11. http://www.trolltech.com/products/download/freelicense/license.html
  12.  
  13. The QPL prohibits development of proprietary software. 
  14. There is a Professional Version of this software available for this. 
  15. Contact sales@chemware.hypermart.net for more information.
  16.  
  17. Software distributed under the QPL is distributed on an "AS IS" basis,
  18. WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the QPL for
  19. the specific language governing rights and limitations under the QPL.
  20.  
  21. The Original Code is: SerEdit.pas, released 12 September 2000.
  22.  
  23. The Initial Developer of the Original Code is Mat Ballard.
  24. Portions created by Mat Ballard are Copyright (C) 1999 Mat Ballard.
  25. Portions created by Microsoft are Copyright (C) 1998, 1999 Microsoft Corp.
  26. All Rights Reserved.
  27.  
  28. Contributor(s): Mat Ballard                 e-mail: mat.ballard@chemware.hypermart.net.
  29.  
  30. Last Modified: 02/25/2000
  31. Current Version: 2.00
  32.  
  33. You may retrieve the latest version of this file from:
  34.  
  35.         http://Chemware.hypermart.net/
  36.  
  37. This work was created with the Project JEDI VCL guidelines:
  38.  
  39.         http://www.delphi-jedi.org/Jedi:VCLVCL
  40.  
  41. in mind. 
  42.  
  43. Purpose:
  44. To facilitate user manipluation of Series properties
  45.  
  46. Known Issues:
  47. -----------------------------------------------------------------------------}
  48.  
  49. interface
  50.  
  51. uses
  52.   Classes, SysUtils, TypInfo,
  53. {$IFDEF WINDOWS}
  54.   WinTypes, WinProcs,
  55.   Buttons, Controls, {Dialogs,} Forms, Graphics, StdCtrls,
  56. {$ENDIF}
  57. {$IFDEF WIN32}
  58.   Windows,
  59.   Buttons, Controls, {Dialogs,} Forms, Graphics, StdCtrls,
  60. {$ENDIF}
  61. {$IFDEF LINUX}
  62.   QButtons, QControls, QDialogs, QExtCtrls, QForms, QGraphics, QStdCtrls,
  63. {$ENDIF}
  64.  
  65.   Misc, NEdit, Plotdefs, Coloredt;
  66.  
  67. type
  68.   TSeriesProperty = record
  69.     PenColor: TColor;
  70.     PenWidthIndex: Integer;
  71.     PenStyleIndex: Integer;
  72.     BrushColor: TColor;
  73.     BrushStyleIndex: Integer;
  74.     SymbolIndex: Integer;
  75.     SymbolSize: Integer;
  76.     YAxisIndex: Byte;
  77.     DeltaX: Integer;
  78.     DeltaY: Integer;
  79.     XDataIndependent: Boolean;
  80.     ExternalXSeries: Boolean;
  81.     Visible: Boolean;
  82.     ShadeLimits: Boolean;
  83.   end;
  84.  
  85.   TSeriesEditorForm = class(TForm)
  86.     HelpBitBtn: TBitBtn;
  87.     CancelBitBtn: TBitBtn;
  88.     OKBitBtn: TBitBtn;
  89.     VisibleCheckBox: TCheckBox;
  90.     PenGroupBox: TGroupBox;
  91.     PenColorLabel: TLabel;
  92.     PenWidthLabel: TLabel;
  93.     PenWidthComboBox: TComboBox;
  94.     PenStyleComboBox: TComboBox;
  95.     PenStyleLabel: TLabel;
  96.     NoComboBox: TComboBox;
  97.     DisplacementGroupBox: TGroupBox;
  98.     DeltaXLabel: TLabel;
  99.     DeltaYLabel: TLabel;
  100.     SeriesNumberLabel: TLabel;
  101.     NameEdit: TEdit;
  102.     YAxisLabel: TLabel;
  103.     YAxisComboBox: TComboBox;
  104.     XDataIndependentCheckBox: TCheckBox;
  105.     BrushGroupBox: TGroupBox;
  106.     BrushColorLabel: TLabel;
  107.     BrushStyleLabel: TLabel;
  108.     BrushStyleComboBox: TComboBox;
  109.     DeltaXNEdit: TNEdit;
  110.     DeltaYNEdit: TNEdit;
  111.     PenColorEdit: TColorEdit;
  112.     BrushColorEdit: TColorEdit;
  113.     ApplyBitBtn: TBitBtn;
  114.     SymbolGroupBox: TGroupBox;
  115.     SymbolSizeLabel: TLabel;
  116.     SymbolComboBox: TComboBox;
  117.     SymbolSizeNEdit: TNEdit;
  118.     SymbolTypeLabel: TLabel;
  119.     ShadedCheckBox: TCheckBox;
  120.     procedure FormCreate(Sender: TObject);
  121.     procedure FormDestroy(Sender: TObject);
  122.     procedure NoComboBoxClick(Sender: TObject);
  123.     procedure PenWidthComboBoxClick(Sender: TObject);
  124.     procedure PenStyleComboBoxClick(Sender: TObject);
  125.     procedure SymbolComboBoxClick(Sender: TObject);
  126.     procedure VisibleCheckBoxClick(Sender: TObject);
  127.     procedure YAxisComboBoxClick(Sender: TObject);
  128.     procedure DeltaXNEditChange(Sender: TObject);
  129.     procedure DeltaYNEditChange(Sender: TObject);
  130.     procedure SymbolSizeNEditChange(Sender: TObject);
  131.     procedure NameEditChange(Sender: TObject);
  132.     procedure XDataIndependentCheckBoxClick(Sender: TObject);
  133.     procedure PenColorEditChange(Sender: TObject);
  134.     procedure BrushColorEditChange(Sender: TObject);
  135.     procedure ApplyBitBtnClick(Sender: TObject);
  136.     procedure ShadedCheckBoxClick(Sender: TObject);
  137.   private
  138.     pASP: ^TSeriesProperty;
  139.     CurrentIndex: Integer;
  140.  
  141.   public
  142.     SeriesPropertyList: TList;
  143.     SeriesNames: TStringList;
  144.     ThePlot: TObject;
  145.     
  146.     function AddSeries(AName: String; ASeriesProperty: TSeriesProperty): Integer;
  147.     procedure SelectSeries(Index: Integer);
  148. {$IFNDEF LANG_ENGLISH}
  149.     procedure DoCaptionsFromResource;
  150. {$ENDIF}
  151.     procedure DoHintsFromResource;
  152.   end;
  153.  
  154. var
  155.   SeriesEditorForm: TSeriesEditorForm;
  156.  
  157. implementation
  158.  
  159. {$R *.dfm}
  160.  
  161. uses
  162.   Plot;
  163.  
  164. {------------------------------------------------------------------------------
  165.     Procedure: TSeriesEditorForm.FormCreate
  166.   Description: standard FormCreate procedure
  167.        Author: Mat Ballard
  168.  Date created: 04/25/2000
  169. Date modified: 04/25/2000 by Mat Ballard
  170.       Purpose: sets the position, populates the PenColor combo, and initializes SeriesNames and SeriesPropertyList
  171.  Known Issues:
  172.  ------------------------------------------------------------------------------}
  173. procedure TSeriesEditorForm.FormCreate(Sender: TObject);
  174. var
  175.   i: Integer;
  176. begin
  177. {$IFNDEF LANG_ENGLISH}
  178.   DoCaptionsFromResource;
  179. {$ENDIF}
  180.   DoHintsFromResource;
  181.  
  182.   SetDialogGeometry(Self, ApplyBitBtn, HelpBitBtn.Left);
  183.  
  184. {Populate the combo boxes:}
  185.   for i := 0 to Ord(High(TBrushStyle)) do
  186.     BrushStyleComboBox.Items.Add(Copy(GetEnumName(TypeInfo(TBrushStyle), i), 3, 99));
  187.   for i := 0 to 20 do
  188.     PenWidthComboBox.Items.Add(IntToStr(i));
  189.   for i := 0 to Ord(High(TPenStyle)) do
  190.     PenStyleComboBox.Items.Add(Copy(GetEnumName(TypeInfo(TPenStyle), i), 3, 99));
  191.   for i := 0 to Ord(High(TSymbol)) do
  192.     SymbolComboBox.Items.Add(Copy(GetEnumName(TypeInfo(TSymbol), i), 3, 99));
  193.  
  194. {set combo and edit box widths:}
  195.   for i := 0 to Self.ComponentCount - 1 do
  196.     if ((Self.Components[i] is TEdit) or
  197.         (Self.Components[i] is TNEdit) or
  198.         (Self.Components[i] is TColorEdit) or
  199.         (Self.Components[i] is TComboBox)) then
  200.       TControl(Self.Components[i]).Width := 88
  201.     else if (Self.Components[i] is TBitBtn) then
  202.       TControl(Self.Components[i]).Width := 97;
  203. {the exceptions:}
  204.   NoComboBox.Width := 48;
  205.   //SymbolSizeNEdit.Width := 48;
  206.   YAxisComboBox.Width := 121;
  207.   SymbolComboBox.Width := 105;
  208.   NameEdit.Width := 193;
  209.  
  210.   SymbolComboBox.ItemIndex := 0;
  211.   SeriesPropertyList := TList.Create;
  212.   SeriesNames := TStringList.Create;
  213. end;
  214.  
  215. {------------------------------------------------------------------------------
  216.     Procedure: TSeriesEditorForm.DoCaptionsFromResource
  217.   Description: standard loading of labels from resources
  218.        Author: Mat Ballard
  219.  Date created: 06/25/2001
  220. Date modified: 06/25/2001 by Mat Ballard
  221.       Purpose: display in different languages
  222.  Known Issues:
  223.  ------------------------------------------------------------------------------}
  224. {$IFNDEF LANG_ENGLISH}
  225. procedure TSeriesEditorForm.DoCaptionsFromResource;
  226. begin
  227.   Self.Caption := sSeries + ' ' + sEditor;
  228.   SeriesNumberLabel.Caption := sSeries + ' ' + sNumber;
  229.   DisplacementGroupBox.Caption := sDisplacement;
  230.   DeltaXLabel.Caption := sMoveThe + 'X';
  231.   DeltaYLabel.Caption := sMoveThe + 'Y';
  232.   BrushGroupBox.Caption := sBrush;
  233.   BrushColorLabel.Caption := sColor;
  234.   BrushStyleLabel.Caption := sStyle;
  235.   SymbolGroupBox.Caption := sSymbol;
  236.   SymbolTypeLabel.Caption := sType;
  237.   SymbolSizeLabel.Caption := sSize;
  238.   PenGroupBox.Caption := sPen;
  239.   PenColorLabel.Caption := sColor;
  240.   PenWidthLabel.Caption := sWidth;
  241.   PenStyleLabel.Caption := sStyle;
  242.   XDataIndependentCheckBox.Caption := 'X ' + sData + sIndependent;
  243.   VisibleCheckBox.Caption := sVisible;
  244.   YAxisLabel.Caption := 'Y ' + sAxis;
  245.   ShadedCheckBox.Caption := sShaded;
  246.   
  247.   HelpBitBtn.Caption := sHelp;
  248.   OKBitBtn.Caption := sOK;
  249.   CancelBitBtn.Caption := sCancel;
  250.   ApplyBitBtn.Caption := sApply;
  251. end;
  252. {$ENDIF}
  253.  
  254. {------------------------------------------------------------------------------
  255.     Procedure: TSeriesEditorForm.DoHintsFromResource
  256.   Description: standard loading of hints from resources
  257.        Author: Mat Ballard
  258.  Date created: 06/25/2001
  259. Date modified: 06/25/2001 by Mat Ballard
  260.       Purpose: display Hints in different languages
  261.  Known Issues:
  262.  ------------------------------------------------------------------------------}
  263. procedure TSeriesEditorForm.DoHintsFromResource;
  264. begin
  265.   NoComboBox.Hint := sNoComboBoxHint;
  266.   NameEdit.Hint := sNameEditHint;
  267.   DisplacementGroupBox.Hint := sDisplacementGroupBoxHint;
  268.   BrushGroupBox.Hint := sBrushGroupBoxHint;
  269.   SymbolGroupBox.Hint := sSymbolGroupBoxHint;
  270.   PenGroupBox.Hint := sPenGroupBoxHint;
  271.   YAxisComboBox.Hint := sYAxisComboBoxHint;
  272.   XDataIndependentCheckBox.Hint := sXDataIndependentCheckBoxHint;
  273.   VisibleCheckBox.Hint := sVisibleCheckBoxHint;
  274.   ShadedCheckBox.Hint := sShadedHint;
  275.   ApplyBitBtn.Hint := sApplyHint;
  276. end;
  277.  
  278. {------------------------------------------------------------------------------
  279.     Procedure: TSeriesEditorForm.FormDestroy
  280.   Description: standard FormDestroy procedure
  281.        Author: Mat Ballard
  282.  Date created: 04/25/2000
  283. Date modified: 04/25/2000 by Mat Ballard
  284.       Purpose: frees the SeriesNames and SeriesPropertyList
  285.  Known Issues:
  286.  ------------------------------------------------------------------------------}
  287. procedure TSeriesEditorForm.FormDestroy(Sender: TObject);
  288. var
  289.   i: Integer;
  290. begin
  291.   for i := 0 to SeriesPropertyList.Count-1 do
  292.     FreeMem(SeriesPropertyList.Items[i], SizeOf(TSeriesProperty));
  293.  
  294.   SeriesPropertyList.Free;
  295.   SeriesNames.Free;
  296. end;
  297.  
  298. {------------------------------------------------------------------------------
  299.      Function: TSeriesEditorForm.AddSeries
  300.   Description: adds a new series to the list
  301.        Author: Mat Ballard
  302.  Date created: 04/25/2000
  303. Date modified: 04/25/2000 by Mat Ballard
  304.       Purpose: stores the Series properties
  305.  Known Issues:
  306.  ------------------------------------------------------------------------------}
  307. function TSeriesEditorForm.AddSeries(AName: String; ASeriesProperty: TSeriesProperty): Integer;
  308. var
  309.   i: Integer;
  310.   pDestination: Pointer;
  311.   pSource,
  312.   pDest: PChar;
  313. begin
  314.   NoComboBox.Items.Add(IntToStr(SeriesNames.Count));
  315.  
  316.   SeriesNames.Add(AName);
  317.  
  318.   GetMem(pDestination, SizeOf(ASeriesProperty));
  319.   pSource := @ASeriesProperty;
  320. {NB: this causes terminal access violations:
  321.   System.Move(pSource, pDestination, SizeOf(TSeriesProperty));}
  322.   pDest := pDestination;
  323.   for i := 1 to SizeOf(ASeriesProperty) do
  324.   begin
  325.     pDest^ := pSource^;
  326.     Inc(pSource);
  327.     Inc(pDest);
  328.   end;
  329.  
  330.   SeriesPropertyList.Add(pDestination);
  331.   AddSeries := SeriesPropertyList.Count;
  332. end;
  333.  
  334. {------------------------------------------------------------------------------
  335.     Procedure: TSeriesEditorForm.SelectSeries
  336.   Description: responds to selection of a new Series
  337.        Author: Mat Ballard
  338.  Date created: 04/25/2000
  339. Date modified: 04/25/2000 by Mat Ballard
  340.       Purpose: manage user input
  341.  Known Issues:
  342.  ------------------------------------------------------------------------------}
  343. procedure TSeriesEditorForm.SelectSeries(Index: Integer);
  344. begin
  345.   pASP := SeriesPropertyList.Items[Index];
  346.   CurrentIndex := Index;
  347.  
  348.   NameEdit.Text := SeriesNames.Strings[Index];
  349.  
  350.   PenColorEdit.Color := pASP^.PenColor;
  351.   PenColorEdit.Text := ColorToString(pASP^.PenColor)+ ' ...';
  352.   PenWidthComboBox.ItemIndex := pASP^.PenWidthIndex;
  353.   PenStyleComboBox.ItemIndex := pASP^.PenStyleIndex;
  354.  
  355.   BrushColorEdit.Color := pASP^.BrushColor;
  356.   BrushColorEdit.Text := ColorToString(pASP^.BrushColor)+ ' ...';
  357.   BrushStyleComboBox.ItemIndex := pASP^.BrushStyleIndex;
  358.   SymbolComboBox.ItemIndex := pASP^.SymbolIndex;
  359.   SymbolSizeNEdit.AsInteger := pASP^.SymbolSize;
  360. {We define YAxisIndex to run from 1 to FAxisList.Count-1}
  361.   YAxisComboBox.ItemIndex := pASP^.YAxisIndex-1;
  362.   DeltaXNEdit.AsInteger := pASP^.DeltaX;
  363.   DeltaYNEdit.AsInteger := pASP^.DeltaY;
  364.   VisibleCheckBox.Checked := pASP^.Visible;
  365.   XDataIndependentCheckBox.Checked := pASP^.XDataIndependent;
  366.   XDataIndependentCheckBox.Visible := pASP^.ExternalXSeries;
  367.   ShadedCheckBox.Checked := pASP^.ShadeLimits;
  368. end;
  369.  
  370. {------------------------------------------------------------------------------
  371.     Procedure: TSeriesEditorForm.NoComboBoxClick
  372.   Description: responds to user selection of a new Series
  373.        Author: Mat Ballard
  374.  Date created: 04/25/2000
  375. Date modified: 04/25/2000 by Mat Ballard
  376.       Purpose: manage user input
  377.  Known Issues: see SelectSeries above
  378.  ------------------------------------------------------------------------------}
  379. procedure TSeriesEditorForm.NoComboBoxClick(Sender: TObject);
  380. begin
  381.   SelectSeries(NoComboBox.ItemIndex);
  382. end;
  383.  
  384. {------------------------------------------------------------------------------
  385.     Procedure: TSeriesEditorForm.PenWidthComboBoxClick
  386.   Description: responds to selection of a new Pen Width for the Series
  387.        Author: Mat Ballard
  388.  Date created: 04/25/2000
  389. Date modified: 04/25/2000 by Mat Ballard
  390.       Purpose: manage user input
  391.  Known Issues:
  392.  ------------------------------------------------------------------------------}
  393. procedure TSeriesEditorForm.PenWidthComboBoxClick(Sender: TObject);
  394. begin
  395.   pASP^.PenWidthIndex := PenWidthComboBox.ItemIndex;
  396. end;
  397.  
  398. {------------------------------------------------------------------------------
  399.     Procedure: TSeriesEditorForm.PenStyleComboBoxClick
  400.   Description: responds to selection of a new Pen Style for the Series
  401.        Author: Mat Ballard
  402.  Date created: 04/25/2000
  403. Date modified: 04/25/2000 by Mat Ballard
  404.       Purpose: manage user input
  405.  Known Issues:
  406.  ------------------------------------------------------------------------------}
  407. procedure TSeriesEditorForm.PenStyleComboBoxClick(Sender: TObject);
  408. begin
  409.   pASP^.PenStyleIndex := PenStyleComboBox.ItemIndex;
  410.   if (PenStyleComboBox.ItemIndex > Ord(psSolid)) then
  411.     PenWidthComboBox.ItemIndex := 1;
  412. end;
  413.  
  414. {------------------------------------------------------------------------------
  415.     Procedure: TSeriesEditorForm.SymbolComboBoxClick
  416.   Description: responds to selection of a new Symbol for the Series
  417.        Author: Mat Ballard
  418.  Date created: 04/25/2000
  419. Date modified: 04/25/2000 by Mat Ballard
  420.       Purpose: manage user input
  421.  Known Issues:
  422.  ------------------------------------------------------------------------------}
  423. procedure TSeriesEditorForm.SymbolComboBoxClick(Sender: TObject);
  424. begin
  425.   pASP^.SymbolIndex := SymbolComboBox.ItemIndex;
  426. end;
  427.  
  428. {------------------------------------------------------------------------------
  429.     Procedure: TSeriesEditorForm.VisibleCheckBoxClick
  430.   Description: responds to changes to the Visibility of the Series
  431.        Author: Mat Ballard
  432.  Date created: 04/25/2000
  433. Date modified: 04/25/2000 by Mat Ballard
  434.       Purpose: manage user input
  435.  Known Issues:
  436.  ------------------------------------------------------------------------------}
  437. procedure TSeriesEditorForm.VisibleCheckBoxClick(Sender: TObject);
  438. begin
  439.   pASP^.Visible := VisibleCheckBox.Checked;
  440. end;
  441.  
  442. {------------------------------------------------------------------------------
  443.     Procedure: TSeriesEditorForm.YAxisComboBoxClick
  444.   Description: responds to changes in the selected Y Axis (primary or 2nd)
  445.        Author: Mat Ballard
  446.  Date created: 04/25/2000
  447. Date modified: 04/25/2000 by Mat Ballard
  448.       Purpose: manage user input
  449.  Known Issues:
  450.  ------------------------------------------------------------------------------}
  451. procedure TSeriesEditorForm.YAxisComboBoxClick(Sender: TObject);
  452. begin
  453. {We define YAxisIndex to run from 1 to FAxisList.Count-1}
  454.   pASP^.YAxisIndex := YAxisComboBox.ItemIndex+1;
  455. end;
  456.  
  457. {------------------------------------------------------------------------------
  458.     Procedure: TSeriesEditorForm.DeltaXNEditChange
  459.   Description: responds to changes in DeltaX
  460.        Author: Mat Ballard
  461.  Date created: 04/25/2000
  462. Date modified: 04/25/2000 by Mat Ballard
  463.       Purpose: manage user input
  464.  Known Issues:
  465.  ------------------------------------------------------------------------------}
  466. procedure TSeriesEditorForm.DeltaXNEditChange(Sender: TObject);
  467. begin
  468.   pASP^.DeltaX := DeltaXNEdit.AsInteger;
  469. end;
  470.  
  471. {------------------------------------------------------------------------------
  472.     Procedure: TSeriesEditorForm.DeltaYNEditChange
  473.   Description: repsonds to changes in DeltaY
  474.        Author: Mat Ballard
  475.  Date created: 04/25/2000
  476. Date modified: 04/25/2000 by Mat Ballard
  477.       Purpose: manage user input
  478.  Known Issues:
  479.  ------------------------------------------------------------------------------}
  480. procedure TSeriesEditorForm.DeltaYNEditChange(Sender: TObject);
  481. begin
  482.   pASP^.DeltaY := DeltaYNEdit.AsInteger;
  483. end;
  484.  
  485. {------------------------------------------------------------------------------
  486.     Procedure: TSeriesEditorForm.SymbolSizeNEditChange
  487.   Description: repsonds to changes in SymbolSize
  488.        Author: Mat Ballard
  489.  Date created: 04/25/2000
  490. Date modified: 04/25/2000 by Mat Ballard
  491.       Purpose: manage user input
  492.  Known Issues:
  493.  ------------------------------------------------------------------------------}
  494. procedure TSeriesEditorForm.SymbolSizeNEditChange(Sender: TObject);
  495. begin
  496.   pASP^.SymbolSize := SymbolSizeNEdit.AsInteger;
  497. end;
  498.  
  499. {------------------------------------------------------------------------------
  500.     Procedure: TSeriesEditorForm.NameEditChange
  501.   Description: repsonds to changes in the Series Name
  502.        Author: Mat Ballard
  503.  Date created: 04/25/2000
  504. Date modified: 04/25/2000 by Mat Ballard
  505.       Purpose: manage user input
  506.  Known Issues:
  507.  ------------------------------------------------------------------------------}
  508. procedure TSeriesEditorForm.NameEditChange(Sender: TObject);
  509. begin
  510.   SeriesNames.Strings[CurrentIndex] := NameEdit.Text;
  511. end;
  512.  
  513. procedure TSeriesEditorForm.XDataIndependentCheckBoxClick(Sender: TObject);
  514. begin
  515.   pASP^.XDataIndependent := XDataIndependentCheckBox.Checked;
  516. end;
  517.  
  518. procedure TSeriesEditorForm.PenColorEditChange(Sender: TObject);
  519. begin
  520.   pASP^.PenColor := PenColorEdit.Color;
  521.   pASP^.BrushColor := Misc.GetPalerColor(pASP.PenColor, 70);
  522. end;
  523.  
  524. procedure TSeriesEditorForm.BrushColorEditChange(Sender: TObject);
  525. begin
  526.   pASP^.BrushColor := BrushColorEdit.Color;
  527. end;
  528.  
  529. procedure TSeriesEditorForm.ApplyBitBtnClick(Sender: TObject);
  530. begin
  531.   TPlot(ThePlot).ApplySeriesChange(Self);
  532. end;
  533.  
  534.  
  535. procedure TSeriesEditorForm.ShadedCheckBoxClick(Sender: TObject);
  536. begin
  537.   pASP^.ShadeLimits := ShadedCheckBox.Checked;
  538. end;
  539.  
  540. end.
  541.