home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 December / Chip_2001-12_cd1.bin / zkuste / delphi / kolekce / d56 / DM2KVCL.ZIP / PLOTEDIT.PAS < prev    next >
Pascal/Delphi Source File  |  2001-08-20  |  2KB  |  83 lines

  1. {****************************************************************************}
  2. {                            Data Master 2000                                }
  3. {****************************************************************************}
  4. unit PlotEdit;
  5. {$B-,X+}
  6. interface
  7.  
  8. uses
  9.   Classes, Graphics, Forms, Buttons, Controls, StdCtrls,
  10.   {$ifdef VER140}
  11.   DesignIntf, DesignEditors;
  12.   {$else}
  13.   DsgnIntf, DsgnWnds;
  14.   {$endif}
  15. type
  16.  
  17.   TAxisProperty=class(TClassProperty)
  18.   public
  19.     procedure Edit; override;
  20.     function GetAttributes: TPropertyAttributes; override;
  21.   end;
  22.  
  23.   TSerieProperty=class(TClassProperty)
  24.   public
  25.     procedure Edit; override;
  26.     function GetAttributes: TPropertyAttributes; override;
  27.   end;
  28.  
  29. procedure Register;
  30.  
  31. implementation
  32.  
  33. uses Common, Plot, AxisDlg, SerieDlg, Windows, SysUtils;
  34.  
  35. { TAxisProperty }
  36.  
  37. procedure TAxisProperty.Edit;
  38. var Axis: TAxis;
  39. begin
  40.   Axis:=TAxis(GetOrdValue);
  41.   AxisPropsForm:=TAxisPropsForm.Create(Application);
  42.   try
  43.     if AxisPropsForm.Execute(Axis) then Modified; {notify designer if changed}
  44.   finally
  45.     AxisPropsForm.Free;
  46.   end;
  47. end;
  48.  
  49. function TAxisProperty.GetAttributes: TPropertyAttributes;
  50. begin Result:=[paDialog, paSubProperties]; end;
  51.  
  52. { TSerieProperty }
  53.  
  54. procedure TSerieProperty.Edit;
  55. var Serie: TSerie; I: integer;
  56. begin
  57.   Serie:=TSerie(GetOrdValue);
  58.   if Serie=nil then begin MessageBeep($ffffffff); Exit; end;
  59.   SeriePropsForm:=TSeriePropsForm.Create(Application);
  60.   SeriePropsForm.XColumnComboBox.Clear;
  61.   for I:=1 to MaxCols do
  62.   SeriePropsForm.XColumnComboBox.Items.Add('Column '+IntToStr(I));
  63.   with SeriePropsForm do YColumnComboBox.Items.Assign(XColumnComboBox.Items);
  64. {TODO: It's a good idea to fill worksheet combobox with form's containers
  65. references. Also we can support global stringlist for expressions history!}
  66.   try
  67.     if SeriePropsForm.Execute(Serie) then Modified;
  68.   finally
  69.     SeriePropsForm.Free;
  70.   end;
  71. end;
  72.  
  73. function TSerieProperty.GetAttributes: TPropertyAttributes;
  74. begin Result:=[paDialog]; end;
  75.  
  76. procedure Register;
  77. begin
  78.   RegisterPropertyEditor(TypeInfo(TAxis), TPlot, '', TAxisProperty);
  79.   RegisterPropertyEditor(TypeInfo(TSerie), TPlot, '', TSerieProperty);
  80. end;
  81.  
  82. end.
  83.