teechartpro.pas
来自「Delphi TeeChartPro.6.01的源代码」· PAS 代码 · 共 441 行
PAS
441 行
{*****************************************}
{ TeeChart Pro }
{ Copyright (c) 1996-2003 David Berneda }
{ }
{ Component Registration Unit }
{ }
{ Funcs: TCountTeeFunction }
{ TCurveFittingTeeFunction }
{ TAverageTeeFunction }
{ TMovingAverageTeeFunction }
{ TExpMovAveFunction }
{ TExpAverageTeeFunction }
{ TMomentumTeeFunction }
{ TRSITeeFunction }
{ TStdDeviationTeeFunction }
{ TMACDFunction }
{ TRootMeanSquareFunction }
{ TCumulative }
{ TCompressFunction }
{ TCrossPointsFunction }
{ TSmoothPointsFunction }
{ TCLVFunction }
{ TOBVFunction }
{ TPVOFunction }
{ }
{ Series: TCandleSeries }
{ TVolumeSeries }
{ TSurfaceSeries }
{ TContourSeries }
{ TWaterFallSeries }
{ TErrorBarSeries }
{ TPolarSeries }
{ TBezierSeries }
{ TPoint3DSeries }
{ TDonutSeries }
{ TBoxPlotSeries }
{ THistogramSeries }
{ TSmithSeries }
{ TPyramidSeries }
{ TMapSeries }
{ TPointFigureSeries }
{ TGaugeSeries }
{ TTowerSeries }
{ TVector3DSeries }
{ }
{ Tools: TCursorTool }
{ TDragMarksTool }
{ TDrawLineTool }
{ THintsTool }
{ TRotateTool }
{ TAxisArrowTool }
{ TColorLineTool }
{ TColorBandTool }
{ TImageTool }
{ TPageNumTool }
{ TDragPointTool }
{ TExtraLegendTool }
{ TSeriesAnimationTool }
{ TGanttTool }
{ TGridBandTool }
{ TPieTool }
{ }
{ Other: TDraw3D }
{ TTeeCommander }
{ TChartEditor }
{ TChartPreviewer }
{ TChartScrollBar }
{ TChartListBox }
{ TSeriesDataSet* }
{ TChartGalleryPanel }
{ TTeePreviewPanel }
{ TChartGrid }
{ TChartGridNavigator }
{ TChartPageNavigator }
{ TChartWebSource }
{ TSeriesTextSource }
{ TTeeInspector }
{ }
{ Sample Series: }
{ TMyPointSeries }
{ TBar3DSeries }
{ TBigCandleSeries }
{ TImagePointSeries }
{ TDeltaPoint }
{ TImageBarSeries }
{ TWindRoseSeries }
{ TClockSeries }
{ TBarJoinSeries }
{ TCalendarSeries }
{ }
{ TeeChart Actions (not for Delphi 3) }
{ *Many* }
{ }
{ * TSeriesDataSet not available in }
{ STANDARD versions of Delphi/CBuilder }
{ }
{*****************************************}
unit TeeChartPro;
{$I TeeDefs.inc}
interface
procedure Register;
Procedure TeeSetLanguage(English:Boolean);
implementation
{$IFDEF CLX}
{$DEFINE TEENOSERIESDESIGN}
{$ENDIF}
{$IFDEF BCB}
{$DEFINE TEENOSERIESDESIGN}
{$ENDIF}
Uses Classes,
{$IFDEF CLX}
DesignIntf, DesignEditors,
QControls, QGraphics, QDialogs, QActnList, QForms,
{$ELSE}
{$IFDEF D6}
DesignIntf, DesignEditors,
{$ELSE}
DsgnIntf,
{$ENDIF}
Controls, Graphics, Dialogs, ActnList, Forms,
{$ENDIF}
{$IFNDEF TEENOSERIESDESIGN}
TeeSeriesDesign,
{$ENDIF}
TeeTranslate,
{ Languages }
TeeSpanish,
TeeGerman,
TeeCatalan,
TeeFrench,
TeeDanish,
TeeDutch,
TeeChinese,
TeeChineseSimp,
TeeBrazil,
TeeSwedish,
TeePortuguese,
TeeRussian,
TeeSlovene,
TeeNorwegian,
TeeJapanese,
TeePolish,
TeeTurkish,
TeeHungarian,
TeeItalian,
TeeArabic,
TeeHebrew,
TeeUkrainian,
TeeKorean,
TeeIndonesian,
TeeGalician,
TeeFinnish,
CandleCh, CurvFitt, ErrorBar, TeeErrBarEd, TeeSurfa, TeeNavigator,
TeeSurfEdit, TeePolar, TeePolarEditor, TeeCandlEdi, StatChar,
TeEngine, Chart, TeeProcs, TeeChartReg, TeeEditPro, TeeConst, TeeProCo,
TeeBezie, TeePoin3, TeCanvas, TeeScroB, TeeEdit, TeeComma, TeeVolEd,
TeeLisB, TeeEdiGene, TeeInspector, TeeCount, TeeCumu, TeeDonut,
TeeTools, TeeTriSurface, TeeDragPoint, TeeGalleryPanel, TeePrevi,
TeePreviewPanel, TeePreviewPanelEditor, MyPoint, Bar3D, BigCandl,
ImaPoint, ImageBar, TeeImaEd, TeeRose, TeeChartGrid, TeeBoxPlot,
TeeDraw3D, TeeURL, TeeSeriesTextEd, TeeMapSeries, TeeChartActions,
TeeSmith, TeeCalendar, TeeCompressOHLC, TeeExtraLegendTool,
TeeCLVFunction, TeeOBVFunction, TeeSeriesAnimEdit,
TeePointFigure, TeeGanttTool,
{$IFNDEF LINUX}
TeeXML,
{$ENDIF}
TeeGridBandToolEdit, TeeGaugeEditor, TeeTowerEdit, TeePieTool;
type TChartEditorCompEditor=class(TComponentEditor)
public
procedure ExecuteVerb( Index : Integer ); override;
function GetVerbCount : Integer; override;
function GetVerb( Index : Integer ) : string; override;
end;
TPreviewPanelCompEditor=class(TComponentEditor)
public
procedure ExecuteVerb( Index : Integer ); override;
function GetVerbCount : Integer; override;
function GetVerb( Index : Integer ) : string; override;
end;
{ TChartEditorCompEditor }
procedure TChartEditorCompEditor.ExecuteVerb( Index : Integer );
begin
if Index=0 then TCustomChartEditor(Component).Execute
else inherited;
end;
function TChartEditorCompEditor.GetVerbCount : Integer;
begin
Result := inherited GetVerbCount+1;
end;
function TChartEditorCompEditor.GetVerb( Index : Integer ) : string;
begin
if Index=0 then result:=TeeMsg_Test
else result:=inherited GetVerb(Index);
end;
{ TPreviewPanelCompEditor }
procedure TPreviewPanelCompEditor.ExecuteVerb( Index : Integer );
begin
if Index=0 then
With TFormPreviewPanelEditor.CreatePanel(nil,TTeePreviewPanel(Component)) do
try
ShowModal;
finally
Free;
end
else inherited;
end;
function TPreviewPanelCompEditor.GetVerbCount : Integer;
begin
Result:=inherited GetVerbCount+1;
end;
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);
var tmp : TCustomAxisPanel;
begin
tmp:=TTeeCustomToolAxis(GetComponent(0)).ParentChart;
if Value=TeeMsg_LeftAxis then SetOrdValue(Integer(tmp.LeftAxis))
else
if Value=TeeMsg_RightAxis then SetOrdValue(Integer(tmp.RightAxis))
else
if Value=TeeMsg_TopAxis then SetOrdValue(Integer(tmp.TopAxis))
else
if Value=TeeMsg_BottomAxis then SetOrdValue(Integer(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;
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;
else
if English then TeeSetEnglish;
end;
end;
Procedure TeeAskLanguageHook;
begin
if TeeAskLanguage then TeeSetLanguage(True);
end;
procedure Register;
begin
{ Pro Components }
RegisterComponents(TeeMsg_TeeChartPalette, [ TChartEditor,
TChartPreviewer,
TDraw3D,
TChartScrollBar,
TTeeCommander,
TChartListBox,
TChartEditorPanel,
TChartGalleryPanel,
TTeePreviewPanel,
TChartGrid,
TChartGridNavigator,
TChartPageNavigator,
TChartWebSource,
TTeeInspector,
{$IFNDEF LINUX}
TTeeXMLSource,
{$ENDIF}
TSeriesTextSource
]);
{ Pro Editors }
RegisterComponentEditor( TChartEditor,TChartEditorCompEditor);
RegisterComponentEditor( TChartPreviewer,TChartEditorCompEditor);
RegisterComponentEditor( TTeePreviewPanel,TPreviewPanelCompEditor);
RegisterComponentEditor( TChartWebSource,TChartWebCompEditor);
RegisterComponentEditor( TSeriesTextSource,TSeriesTextCompEditor);
RegisterPropertyEditor(TypeInfo(TChartAxis), TTeeCustomToolAxis, '',TTeeCustomToolAxisProperty);
{ Chart Actions }
RegisterActions(TeeMsg_CategoryChartActions,
[ TChartAction3D,TChartActionEdit,
TChartActionCopy,TChartActionPrint,
TChartActionAxes,TChartActionGrid,
TChartActionLegend,
TChartActionSave ],nil);
{ Series Actions }
RegisterActions(TeeMsg_CategorySeriesActions,
[ TSeriesActionActive,TSeriesActionEdit,
TSeriesActionMarks ], nil);
TeeSetLanguage(False);
end;
initialization
{$IFNDEF TEENOSERIESDESIGN}
TeeChartEditorHook:=TeeShowSeriesEditor;
{$ENDIF}
TeeChartLanguageHook:=TeeAskLanguageHook;
finalization
TeeChartEditorHook:=nil; { For TeeChartReg "Series..." menu item }
TeeChartLanguageHook:=nil; { For TeeChartReg "Language..." menu item }
if TeeLanguage<>TeeEnglishLanguage then { reset language }
TeeSetEnglish;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?