⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 teechartpro.pas

📁 BCB第三方组件
💻 PAS
📖 第 1 页 / 共 2 页
字号:

{ TTeeCustomToolAxisProperty }
function TTeeCustomToolAxisProperty.GetAttributes: TPropertyAttributes;
begin
  result:=[paValueList,paMultiSelect,paRevertable]
end;

function TTeeCustomToolAxisProperty.GetValue: string;
begin
  With TTeeCustomToolAxis(GetComponent(0)) do
       result:=TCustomChart(ParentChart).AxisTitleOrName(Axis);
end;

procedure TTeeCustomToolAxisProperty.GetValues(Proc: TGetStrProc);
begin
  inherited;
  Proc(TeeMsg_LeftAxis);
  Proc(TeeMsg_RightAxis);
  Proc(TeeMsg_TopAxis);
  Proc(TeeMsg_BottomAxis);
end;

procedure TTeeCustomToolAxisProperty.SetValue(const Value: string);

  procedure SetAxis(Axis:TChartAxis);
  begin
    {$IFDEF CLR}
    SetObjValue(Axis);
    {$ELSE}
    SetOrdValue(Integer(Axis));
    {$ENDIF}
  end;

var tmp : TCustomAxisPanel;
begin
  tmp:=TTeeCustomToolAxis(GetComponent(0)).ParentChart;

  if Value=TeeMsg_LeftAxis then SetAxis(tmp.LeftAxis)
  else
  if Value=TeeMsg_RightAxis then SetAxis(tmp.RightAxis)
  else
  if Value=TeeMsg_TopAxis then SetAxis(tmp.TopAxis)
  else
  if Value=TeeMsg_BottomAxis then SetAxis(tmp.BottomAxis)
end;

type
  TChartWebCompEditor=class(TComponentEditor)
  public
    procedure ExecuteVerb(Index:Integer); override;
    function GetVerb(Index:Integer):string; override;
    function GetVerbCount:Integer; override;
  end;

{ TChartWebCompEditor }
procedure TChartWebCompEditor.ExecuteVerb(Index:Integer);
begin
  if Index=0 then
  begin
    Screen.Cursor:=crHourGlass;
    try
      TChartWebSource(Component).Execute;
    finally
      Screen.Cursor:=crDefault;
    end;
  end
  else inherited;
end;

function TChartWebCompEditor.GetVerbCount:Integer;
begin
  Result:=inherited GetVerbCount+1;
end;

function TChartWebCompEditor.GetVerb(Index:Integer):string;
begin
  if Index=0 then result:=TeeMsg_Load
             else result:=inherited GetVerb(Index);
end;

type
  TImportChartEditor=class(TComponentEditor)
  public
    procedure ExecuteVerb(Index:Integer); override;
    function GetVerb(Index:Integer):string; override;
    function GetVerbCount:Integer; override;
  end;

{ TImportChartEditor }
procedure TImportChartEditor.ExecuteVerb(Index:Integer);
var tmpDialog : TOpenDialog;
begin
  if Index=0 then
  begin
    tmpDialog:=TOpenDialog.Create(nil);
    try
      tmpDialog.Filter:=TeeMsg_TeeFiles+' (*.'+TeeMsg_TeeExtension+')'; // Do not localize

      {$IFNDEF CLX}
      tmpDialog.Filter:=tmpDialog.Filter+'|*.'+TeeMsg_TeeExtension; // Do not localize
      tmpDialog.Options:=[ofHideReadOnly, ofFileMustExist];
      {$ENDIF}

      if tmpDialog.Execute then
      begin
        Screen.Cursor:=crHourGlass;
        try
          TImportChart(Component).LoadFromFile(tmpDialog.FileName);
        finally
          Screen.Cursor:=crDefault;
        end;
      end;
    finally
      tmpDialog.Free;
    end;
  end
  else inherited;
end;

function TImportChartEditor.GetVerbCount:Integer;
begin
  Result:=inherited GetVerbCount+1;
end;

function TImportChartEditor.GetVerb(Index:Integer):string;
begin
  if Index=0 then result:=TeeMsg_Load
             else result:=inherited GetVerb(Index);
end;

type
  TSeriesTextCompEditor=class(TComponentEditor)
  public
    procedure ExecuteVerb(Index:Integer); override;
    function GetVerb(Index:Integer):string; override;
    function GetVerbCount:Integer; override;
  end;

{ TSeriesTextCompEditor }
procedure TSeriesTextCompEditor.ExecuteVerb(Index:Integer);
begin
  if Index=0 then
  begin
    TeeEditSeriesTextSource(TSeriesTextSource(Component));
    Designer.Modified;
  end
  else inherited;
end;

function TSeriesTextCompEditor.GetVerbCount:Integer;
begin
  Result:=inherited GetVerbCount+1;
end;

function TSeriesTextCompEditor.GetVerb(Index:Integer):string;
begin
  if Index=0 then result:=TeeMsg_Edit
             else result:=inherited GetVerb(Index);
end;
{$ENDIF}

Procedure TeeSetLanguage(English:Boolean);
begin
  Case TeeLanguageRegistry of
    1: TeeSetBrazil;
    2: TeeSetCatalan;
    3: TeeSetChineseSimp;
    4: TeeSetChinese;
    5: TeeSetDanish;
    6: TeeSetDutch;
    7: TeeSetFrench;
    8: TeeSetGerman;
    9: TeeSetItalian;
   10: TeeSetPortuguese;
   11: TeeSetRussian;
   12: TeeSetSpanish;
   13: TeeSetSwedish;
   14: TeeSetNorwegian;
   15: TeeSetJapanese;
   16: TeeSetPolish;
   17: TeeSetSlovene;
   18: TeeSetTurkish;
   19: TeeSetHungarian;
   20: TeeSetGalician;
   21: TeeSetArabic;
   22: TeeSetHebrew;
   23: TeeSetUkrainian;
   24: TeeSetKorean;
   25: TeeSetIndonesian;
   26: TeeSetFinnish;
   27: TeeSetSlovak;
   28: TeeSetHellenic;
   29: TeeSetRomanian;
   30: TeeSetSerbian;
   31: TeeSetFarsi;
   32: TeeSetCzech;
   33: TeeSetHindi;
   34: TeeSetUrdu;
   35: TeeSetMalaysian;
  else
    if English then TeeSetEnglish;
  end;
end;

type
  TInnerChartProperty=class(TChartClassProperty)
  public
    procedure Edit; override;
  end;

{ TInnerChart editor (used by TSubChartTool) }
procedure TInnerChartProperty.Edit;
begin
  EditChart(nil,TCustomChart(GetObject));
  Designer.Modified;
end;

procedure Register;
begin
  {$IFDEF D9}
  // D2006 Report shows only reason for not demand-loading are the registered Actions,
  // so it is safe to force demand-load as Actions only need classes in this package.
  ForceDemandLoadState(dlEnable);
  {$ENDIF}

  { Pro Components }
  RegisterComponents(TeeMsg_TeeChartPalette, [ TChartEditor,
                                               TChartPreviewer,
                                               TChartScrollBar,
                                               TTeeCommander,
                                               TChartListBox,
                                               TChartEditorPanel,
                                               TChartGalleryPanel,
                                               TTeePreviewPanel,
                                               TChartGrid,
                                               TChartGridNavigator,
                                               TChartPageNavigator,
                                               TChartWebSource,
                                               TTeeInspector,

                                               {$IFNDEF LINUX}
                                               {$IFNDEF CLR}
                                               {$IFNDEF LCL}
                                               TTeeXMLSource,
                                               {$ENDIF}
                                               {$ENDIF}
                                               {$ENDIF}

                                               {$IFNDEF CLR}
                                               {$IFNDEF LCL}
                                               TTeeExcelSource,
                                               {$ENDIF}
                                               {$ENDIF}

                                               TSeriesTextSource,
                                               TChartBook,
                                               TImportChart
                                             ]);


  { Pro Editors }

  {$IFDEF TEEEDITORS}
  RegisterComponentEditor(  TChartEditor,TChartEditorCompEditor);
  RegisterComponentEditor(  TChartPreviewer,TChartEditorCompEditor);
  RegisterComponentEditor(  TTeePreviewPanel,TPreviewPanelCompEditor);
  RegisterComponentEditor(  TChartWebSource,TChartWebCompEditor);
  RegisterComponentEditor(  TSeriesTextSource,TSeriesTextCompEditor);
  RegisterPropertyEditor(TypeInfo(TChartAxis), TTeeCustomToolAxis, '',TTeeCustomToolAxisProperty);
  RegisterPropertyEditor(TypeInfo(TCustomChart),TSubChart,'Chart',TInnerChartProperty); // Do not localize
  RegisterComponentEditor(  TImportChart,TImportChartEditor);
  {$ENDIF}

  { Chart Actions }
  {$IFDEF CLX}
  {$IFDEF BCB}
  {$DEFINE TEENOACTIONS}  // BCB6 CLX bug when registering actions.
  {$ENDIF}
  {$ENDIF}

  {$IFNDEF TEENOACTIONS}
  RegisterActions(TeeMsg_CategoryChartActions,
                  [ TChartAction3D,TChartActionEdit,
                    TChartActionCopy,TChartActionPrint,
                    TChartActionAxes,TChartActionGrid,
                    TChartActionLegend,
                    TChartActionSave ],nil);

  { Series Actions }
  RegisterActions(TeeMsg_CategorySeriesActions,
                  [ TSeriesActionActive,TSeriesActionEdit,
                    TSeriesActionMarks ], nil);
  {$ENDIF}

// TeeImage package units:
(*
  RegisterTeeExportFormat(TJPEGExportFormat);
  RegisterTeeExportFormat(TGIFExportFormat);
  RegisterTeeExportFormat(TPNGExportFormat);
  RegisterTeeExportFormat(TPCXExportFormat);
  RegisterTeeExportFormat(TVMLExportFormat);
  RegisterTeeExportFormat(TPDFExportFormat);
  RegisterTeeExportFormat(TSVGExportFormat);
  RegisterTeeExportFormat(TEPSExportFormat);
  RegisterTeeExportFormat(TXAMLExportFormat);
  RegisterTeeExportFormat(TFlexExportFormat);
*)

  TeeSetLanguage(False);
end;

Function TeeNewChartProc(Chart:TCustomChart):TChartThemeClass;
begin
  {$IFNDEF TEENOTHEMES}
  if (TeeNewChartTheme<>0) and (ChartThemes.Count>TeeNewChartTheme) then
  begin
    result:=TChartThemeClass(ChartThemes[TeeNewChartTheme]);
    ApplyChartTheme(result,Chart,TeeNewChartPalette);
  end
  else
  {$ENDIF}
  begin
    if TeeNewChartPalette<>-1 then
       Chart.ColorPaletteIndex:=TeeNewChartPalette;

    result:=nil;
  end;
end;

{$IFNDEF TEELITE}
Procedure TeeOptionsFormHook;
begin
  with TOptionsForm.Create(nil) do
  try
    if ShowModal=mrOk then 
       TeeSetLanguage(True);
  finally
    Free;
  end;
end;
{$ENDIF}

initialization
  {$IFNDEF TEENOSERIESDESIGN}
  TeeChartEditorHook:=TeeShowSeriesEditor;
  {$ENDIF}

  TeeNewChartTheme:=TeeReadIntegerOption(TeeMsg_DefaultTheme,0);
  TeeNewChartPalette:=TeeReadIntegerOption(TeeMsg_DefaultPalette,-1);

  TeeNewChartHook:=TeeNewChartProc;

  {$IFNDEF TEELITE}
  TeeDesignOptionsHook:=TeeOptionsFormHook;
  {$ENDIF}
finalization
  // un-hook
  TeeNewChartHook:=nil;
  TeeChartEditorHook:=nil;    // For TeeChartReg "Series..." menu item

  {$IFNDEF TEELITE}
  TeeDesignOptionsHook:=nil;  // For TeeChartReg "Options..." menu item
  {$ENDIF}

  if TeeLanguage<>TeeEnglishLanguage then // Reset language
     TeeSetEnglish;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -