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

📄 teechartpro.pas

📁 第三方控件:PaintGrid.pas 网格型仪表控件源文件 Mymeter.pas 圆型仪表控件源文件 Project1是这两个控件的使用范例。 该
💻 PAS
📖 第 1 页 / 共 2 页
字号:

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

type
  TTeeCustomToolAxisProperty = class(TPropertyEditor)
  public
    function GetAttributes : TPropertyAttributes; override;
    procedure GetValues(Proc: TGetStrProc); override;
    function GetValue: string; override;
    procedure SetValue(const Value: string); override;
  end;

{ 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
  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;
  else
    if English then TeeSetEnglish;
  end;
end;

procedure Register;
begin
  {$IFDEF D9}
  // D2005 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}
                                               TSeriesTextSource
                                             ]);

  { Pro Editors }

  {$IFDEF TEEEDITORS}
  RegisterComponentEditor(  TChartEditor,TChartEditorCompEditor);
  RegisterComponentEditor(  TChartPreviewer,TChartEditorCompEditor);
  RegisterComponentEditor(  TTeePreviewPanel,TPreviewPanelCompEditor);
  RegisterComponentEditor(  TChartWebSource,TChartWebCompEditor);
  RegisterComponentEditor(  TSeriesTextSource,TSeriesTextCompEditor);
  RegisterPropertyEditor(TypeInfo(TChartAxis), TTeeCustomToolAxis, '',TTeeCustomToolAxisProperty);
  {$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);
*)

  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,-1);
  end
  else
  {$ENDIF} 
    result:=nil;
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);
  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 + -