📄 teechartpro.pas
字号:
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 + -