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

  1. {**********************************************}
  2. {  TCustomChart (or derived) Editor Dialog     }
  3. {  Copyright (c) 1996-98 by David Berneda      }
  4. {**********************************************}
  5. {$I teedefs.inc}
  6. unit IEdiTitl;
  7.  
  8. interface
  9.  
  10. uses
  11.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  12.   StdCtrls, ExtCtrls,Chart;
  13.  
  14. type
  15.   TFormTeeTitle = class(TForm)
  16.     CBTitles: TComboBox;
  17.     CBVisible: TCheckBox;
  18.     CBAdjust: TCheckBox;
  19.     BFont: TButton;
  20.     BFrame: TButton;
  21.     BBrush: TButton;
  22.     RGAlign: TRadioGroup;
  23.     MText: TMemo;
  24.     BColor: TButton;
  25.     procedure BFontClick(Sender: TObject);
  26.     procedure FormShow(Sender: TObject);
  27.     procedure CBVisibleClick(Sender: TObject);
  28.     procedure MTextChange(Sender: TObject);
  29.     procedure BFrameClick(Sender: TObject);
  30.     procedure CBAdjustClick(Sender: TObject);
  31.     procedure BBrushClick(Sender: TObject);
  32.     procedure RGAlignClick(Sender: TObject);
  33.     procedure CBTitlesChange(Sender: TObject);
  34.     procedure BColorClick(Sender: TObject);
  35.   private
  36.     { Private declarations }
  37.     AssigningText:Boolean;
  38.     Procedure SetMemoFormat;
  39.     procedure SetTitleControls;
  40.   public
  41.     { Public declarations }
  42.     TheTitle:TChartTitle;
  43.     Constructor CreateTitle(Owner:TComponent; ATitle:TChartTitle);
  44.   end;
  45.  
  46. implementation
  47.  
  48. {$R *.DFM}
  49. Uses TeEngine, PenDlg, BrushDlg;
  50.  
  51. Constructor TFormTeeTitle.CreateTitle(Owner:TComponent; ATitle:TChartTitle);
  52. begin
  53.   inherited Create(Owner);
  54.   TheTitle:=ATitle;
  55.   AssigningText:=False;
  56. end;
  57.  
  58. Procedure TFormTeeTitle.SetMemoFormat;
  59. begin
  60.   MText.Font:=TheTitle.Font;
  61.   if TheTitle.Color=clTeeColor then
  62.   begin
  63.     if MText.Font.Color=clWhite then MText.Color:=clDkGray
  64.                                 else MText.Color:=clWhite;
  65.   end
  66.   else MText.Color:=TheTitle.Color;
  67. end;
  68.  
  69. procedure TFormTeeTitle.BFontClick(Sender: TObject);
  70. begin
  71.   With TheTitle do Font:=InternalEditFont(Self,Font);
  72.   SetMemoFormat;
  73. end;
  74.  
  75. procedure TFormTeeTitle.SetTitleControls;
  76. begin
  77.   With TheTitle do
  78.   begin
  79.     Case Alignment of
  80.       taLeftJustify:  RGAlign.ItemIndex:=0;
  81.       taCenter:       RGAlign.ItemIndex:=1;
  82.       taRightJustify: RGAlign.ItemIndex:=2;
  83.     end;
  84.     CBVisible.Checked :=Visible;
  85.     CBAdjust.Checked  :=AdjustFrame;
  86.     SetMemoFormat;
  87.     AssigningText:=True;
  88.     MText.Lines:=Text;
  89.     AssigningText:=False;
  90.   end;
  91. end;
  92.  
  93. procedure TFormTeeTitle.FormShow(Sender: TObject);
  94. begin
  95.   if TheTitle=TCustomChart(TheTitle.ParentChart).Foot then
  96.      CBTitles.ItemIndex:=1
  97.   else
  98.      CBTitles.ItemIndex:=0;
  99.   SetTitleControls;
  100. end;
  101.  
  102. procedure TFormTeeTitle.CBVisibleClick(Sender: TObject);
  103. begin
  104.   TheTitle.Visible:=CBVisible.Checked;
  105. end;
  106.  
  107. procedure TFormTeeTitle.MTextChange(Sender: TObject);
  108.  
  109.   Function EqualStrings(A,B:TStrings):Boolean;
  110.   var t:Integer;
  111.   begin
  112.     result:=A.Count=B.Count;
  113.     if result then
  114.       for t:=0 to A.Count-1 do
  115.       begin
  116.         result:=A[t]=B[t];
  117.         if not result then break;
  118.       end;
  119.   end;
  120.  
  121. begin
  122.   if not AssigningText then
  123.   With TheTitle do
  124.   if not EqualStrings(Text,MText.Lines) then Text:=MText.Lines;
  125. end;
  126.  
  127. procedure TFormTeeTitle.BFrameClick(Sender: TObject);
  128. begin
  129.   EditChartPen(Self,TheTitle.Frame);
  130. end;
  131.  
  132. procedure TFormTeeTitle.CBAdjustClick(Sender: TObject);
  133. begin
  134.   TheTitle.AdjustFrame:=CBAdjust.Checked;
  135. end;
  136.  
  137. procedure TFormTeeTitle.BBrushClick(Sender: TObject);
  138. begin
  139.   EditChartBrush(Self,TheTitle.Brush);
  140. end;
  141.  
  142. procedure TFormTeeTitle.RGAlignClick(Sender: TObject);
  143. begin
  144.   With TheTitle do
  145.   Case RGAlign.ItemIndex of
  146.     0: Alignment:=taLeftJustify;
  147.     1: Alignment:=taCenter;
  148.     2: Alignment:=taRightJustify;
  149.   end;
  150. end;
  151.  
  152. procedure TFormTeeTitle.CBTitlesChange(Sender: TObject);
  153. begin
  154.   With TCustomChart(TheTitle.ParentChart) do
  155.   if CBTitles.ItemIndex=0 then TheTitle:=Title
  156.                           else TheTitle:=Foot;
  157.   SetTitleControls;
  158. end;
  159.  
  160. procedure TFormTeeTitle.BColorClick(Sender: TObject);
  161. begin
  162.   With TheTitle do Color:=EditColor(Self,Color);
  163.   SetMemoFormat;
  164. end;
  165.  
  166. end.
  167.