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

  1. {**********************************************}
  2. {  TCustomChart (or derived) Editor Dialog     }
  3. {  Copyright (c) 1996-98 by David Berneda      }
  4. {**********************************************}
  5. {$I teedefs.inc}
  6. unit IEdiPane;
  7.  
  8. interface
  9.  
  10. uses
  11.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  12.   StdCtrls, ExtCtrls, Chart, ComCtrls;
  13.  
  14. type
  15.   TFormTeePanel = class(TForm)
  16.     RGBevelIn: TRadioGroup;
  17.     RGBevelOut: TRadioGroup;
  18.     BPanelColor: TButton;
  19.     CBPanelBorder: TCheckBox;
  20.     GB4: TGroupBox;
  21.     Shape1: TShape;
  22.     Shape2: TShape;
  23.     CBGradVisible: TCheckBox;
  24.     BGradientStart: TButton;
  25.     BGradientEnd: TButton;
  26.     GB6: TGroupBox;
  27.     RGBitmap: TRadioGroup;
  28.     BBrowseImage: TButton;
  29.     CBImageInside: TCheckBox;
  30.     SEPanelBor: TEdit;
  31.     L19: TLabel;
  32.     L2: TLabel;
  33.     SEPanelWi: TEdit;
  34.     UDPanelWi: TUpDown;
  35.     UDPanelBor: TUpDown;
  36.     ComboBox1: TComboBox;
  37.     Label1: TLabel;
  38.     procedure RGBevelInClick(Sender: TObject);
  39.     procedure RGBevelOutClick(Sender: TObject);
  40.     procedure CBPanelBorderClick(Sender: TObject);
  41.     procedure SEPanelWiChange(Sender: TObject);
  42.     procedure BGradientStartClick(Sender: TObject);
  43.     procedure BGradientEndClick(Sender: TObject);
  44.     procedure CBGradVisibleClick(Sender: TObject);
  45.     procedure Shape1MouseUp(Sender: TObject; Button: TMouseButton;
  46.       Shift: TShiftState; X, Y: Integer);
  47.     procedure Shape2MouseUp(Sender: TObject; Button: TMouseButton;
  48.       Shift: TShiftState; X, Y: Integer);
  49.     procedure FormShow(Sender: TObject);
  50.     procedure RGBitmapClick(Sender: TObject);
  51.     procedure BBrowseImageClick(Sender: TObject);
  52.     procedure CBImageInsideClick(Sender: TObject);
  53.     procedure SEPanelBorChange(Sender: TObject);
  54.     procedure BPanelColorClick(Sender: TObject);
  55.     procedure FormCreate(Sender: TObject);
  56.     procedure ComboBox1Change(Sender: TObject);
  57.   private
  58.     { Private declarations }
  59.     CreatingForm : Boolean;
  60.     procedure RepaintGradientColors;
  61.     procedure CheckGradientVisible;
  62.     procedure EnableImageControls;
  63.   public
  64.     { Public declarations }
  65.     TheChart:TCustomChart;
  66.     Constructor CreateChart(Owner:TComponent; AChart:TCustomChart);
  67.   end;
  68.  
  69. procedure TeeLoadClearImage(AOwner:TComponent; AImage:TPicture);
  70.  
  71. implementation
  72.  
  73. {$R *.DFM}
  74. Uses TeCanvas,PenDlg,TeeProcs,TeeConst
  75.      {$IFDEF D3}
  76.      ,ExtDlgs
  77.      {$ENDIF}
  78.      ;
  79.  
  80. Constructor TFormTeePanel.CreateChart(Owner:TComponent; AChart:TCustomChart);
  81. begin
  82.   inherited Create(Owner);
  83.   TheChart:=AChart;
  84. end;
  85.  
  86. procedure TFormTeePanel.RGBevelInClick(Sender: TObject);
  87. begin
  88.   if TheChart.BevelInner<>TPanelBevel(RGBevelIn.ItemIndex) then
  89.      TheChart.BevelInner:=TPanelBevel(RGBevelIn.ItemIndex);
  90. end;
  91.  
  92. procedure TFormTeePanel.RGBevelOutClick(Sender: TObject);
  93. begin
  94.   if TheChart.BevelOuter<>TPanelBevel(RGBevelOut.ItemIndex) then
  95.      TheChart.BevelOuter:=TPanelBevel(RGBevelOut.ItemIndex);
  96. end;
  97.  
  98. procedure TFormTeePanel.CBPanelBorderClick(Sender: TObject);
  99. Const Styles:Array[Boolean] of TBorderStyle=(bsNone,bsSingle);
  100. begin
  101.   TheChart.BorderStyle:=Styles[CBPanelBorder.Checked]
  102. end;
  103.  
  104. procedure TFormTeePanel.SEPanelWiChange(Sender: TObject);
  105. begin
  106.   if not CreatingForm then
  107.   With TheChart do
  108.   if BevelWidth<>UDPanelWi.Position then BevelWidth:=UDPanelWi.Position;
  109. end;
  110.  
  111. procedure TFormTeePanel.BGradientStartClick(Sender: TObject);
  112. begin
  113.   With TheChart.Gradient do StartColor:=EditColor(Self,StartColor);
  114.   RepaintGradientColors;
  115. end;
  116.  
  117. procedure TFormTeePanel.BGradientEndClick(Sender: TObject);
  118. begin
  119.   With TheChart.Gradient do EndColor:=EditColor(Self,EndColor);
  120.   RepaintGradientColors;
  121. end;
  122.  
  123. procedure TFormTeePanel.CheckGradientVisible;
  124. Begin
  125.   ComboBox1.ItemIndex:=Ord(TheChart.Gradient.Direction);
  126.   EnableControls(TheChart.Gradient.Visible,[ ComboBox1,
  127.                                              BGradientStart,
  128.                                              BGradientEnd,
  129.                                              Shape1,
  130.                                              Shape2]);
  131.   RepaintGradientColors;
  132. end;
  133.  
  134. procedure TFormTeePanel.CBGradVisibleClick(Sender: TObject);
  135. begin
  136.   TheChart.Gradient.Visible:=CBGradVisible.Checked;
  137.   CheckGradientVisible;
  138. end;
  139.  
  140. procedure TFormTeePanel.Shape1MouseUp(Sender: TObject;
  141.   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  142. begin
  143.   BGradientStartClick(Self);
  144. end;
  145.  
  146. procedure TFormTeePanel.Shape2MouseUp(Sender: TObject;
  147.   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  148. begin
  149.   BGradientEndClick(Self);
  150. end;
  151.  
  152. procedure TFormTeePanel.FormShow(Sender: TObject);
  153. begin
  154.   With TheChart do
  155.   begin
  156.     RGBevelIn.ItemIndex    :=Ord(BevelInner);
  157.     RGBevelOut.ItemIndex   :=Ord(BevelOuter);
  158.     CBPanelBorder.Checked  :=BorderStyle=bsSingle;
  159.     UDPanelWi.Position     :=BevelWidth;
  160.     UDPanelBor.Position    :=BorderWidth;
  161.     CBGradVisible.Checked  :=Gradient.Visible;
  162.     CheckGradientVisible;
  163.     RGBitmap.ItemIndex     :=Ord(BackImageMode);
  164.     CBImageInside.Checked  :=BackImageInside;
  165.     EnableImageControls;
  166.   end;
  167.   CreatingForm:=False;
  168. end;
  169.  
  170. procedure TFormTeePanel.RGBitmapClick(Sender: TObject);
  171. begin
  172.   TheChart.BackImageMode:=TTeeBackImageMode(RGBitmap.ItemIndex);
  173. end;
  174.  
  175. procedure TFormTeePanel.EnableImageControls;
  176. begin
  177.   RGBitmap.Enabled:=(TheChart.BackImage.Graphic<>nil);
  178.   CBImageInside.Enabled:=RGBitmap.Enabled;
  179.   if TheChart.BackImage.Graphic<>nil then
  180.      BBrowseImage.Caption:=TeeMsg_ClearImage
  181.   else
  182.      BBrowseImage.Caption:=TeeMsg_BrowseImage;
  183. end;
  184.  
  185. procedure TeeLoadClearImage(AOwner:TComponent; AImage:TPicture);
  186. begin
  187.   if AImage.Graphic<>nil then AImage.Assign(nil)
  188.   else
  189.   {$IFDEF D3}
  190.   With TOpenPictureDialog.Create(AOwner) do
  191.   {$ELSE}
  192.   With TOpenDialog.Create(AOwner) do
  193.   {$ENDIF}
  194.   try
  195.     Filter:=GraphicFilter(TGraphic);
  196.     {$IFNDEF D3}
  197.     DefaultExt:=TeeGetImageExtension(0);
  198.     Options:=Options+[ofHideReadOnly];
  199.     {$ENDIF}
  200.     if Execute then AImage.LoadFromFile(FileName);
  201.   finally
  202.     Free;
  203.   end;
  204. end;
  205.  
  206. procedure TFormTeePanel.BBrowseImageClick(Sender: TObject);
  207. begin
  208.   TeeLoadClearImage(Self,TheChart.BackImage);
  209.   EnableImageControls;
  210. end;
  211.  
  212. procedure TFormTeePanel.CBImageInsideClick(Sender: TObject);
  213. begin
  214.   TheChart.BackImageInside:=CBImageInside.Checked;
  215. end;
  216.  
  217. procedure TFormTeePanel.RepaintGradientColors;
  218.  
  219.   Procedure SetShape(AShape:TShape; AColor:TColor);
  220.   begin
  221.     With AShape do
  222.     Begin
  223.       Pen.Style:=psSolid;
  224.       Pen.Color:=clBlack;
  225.       Brush.Style:=bsSolid;
  226.       Brush.Color:=AColor;
  227.     end;
  228.   end;
  229.  
  230. Begin
  231.   SetShape(Shape1,TheChart.Gradient.StartColor);
  232.   SetShape(Shape2,TheChart.Gradient.EndColor);
  233. end;
  234.  
  235. procedure TFormTeePanel.SEPanelBorChange(Sender: TObject);
  236. begin
  237.   if not CreatingForm then
  238.   With TheChart do
  239.   if BorderWidth<>UDPanelBor.Position then BorderWidth:=UDPanelBor.Position;
  240. end;
  241.  
  242. procedure TFormTeePanel.BPanelColorClick(Sender: TObject);
  243. begin
  244.   With TheChart do
  245.   begin
  246.     Color:=EditColor(Self,Color);
  247.     Repaint;
  248.   end;
  249. end;
  250.  
  251. procedure TFormTeePanel.FormCreate(Sender: TObject);
  252. begin
  253.   CreatingForm:=True;
  254.   Shape1.Cursor:=crTeeHand;
  255.   Shape2.Cursor:=crTeeHand;
  256. end;
  257.  
  258. procedure TFormTeePanel.ComboBox1Change(Sender: TObject);
  259. begin
  260.   TheChart.Gradient.Direction:=TGradientDirection(ComboBox1.ItemIndex);
  261. end;
  262.  
  263. end.
  264.