📄 teechartreg.pas
字号:
{*****************************************}
{ TeeChart Standard version }
{ }
{ Component Registration Unit }
{ }
{ Comps: TChart }
{ TDBChart (not for Std/Open) }
{ }
{ Series: TLineSeries }
{ TAreaSeries }
{ TPointSeries }
{ TBarSeries }
{ THorizBarSeries }
{ TPieSeries }
{ TBubbleSeries }
{ TGanttSeries }
{ TChartShape }
{ TArrowSeries }
{ TFastLineSeries }
{ THorizLineSeries }
{ THorizAreaSeries }
{ }
{ Other: }
{ TButtonColor }
{ TButtonPen }
{ TComboFlat }
{ }
{ Multi-Language selector }
{ }
{ TTeeDBCrossTab }
{ }
{ Copyright (c) 1995-2003 David Berneda }
{ All Rights Reserved }
{ }
{*****************************************}
unit TeeChartReg;
{$I TeeDefs.inc}
interface
Uses {$IFDEF D6DESIGNER}
DesignIntf, DesignEditors, PropertyCategories,
{$ELSE}
DsgnIntf,
{$ENDIF}
TeEngine, Chart, TeCanvas;
{$R TeeChart.res}
{$IFNDEF BCB}
{$IFNDEF CLX}
{$IFNDEF TEENOSERIESDESIGN}
{$DEFINE TEESHOWCUSTOMAXES}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$IFNDEF NOUSE_BDE}
{$DEFINE TEEDBREG}
{$ENDIF}
{$IFDEF KYLIXOPEN}
{$UNDEF TEEDBREG}
{$ENDIF}
Type
TTeeClassProperty=class(TClassProperty)
public
function GetValue: string; override;
end;
TChartClassProperty=class(TTeeClassProperty)
protected
procedure InternalEditPage(AChart:TCustomChart; APage:Integer);
public
function GetAttributes : TPropertyAttributes; override;
end;
TChartCompEditor=class(TComponentEditor)
protected
Function Chart:TCustomChart; virtual;
public
procedure Edit; override;
procedure ExecuteVerb( Index : Integer ); override;
function GetVerbCount : Integer; override;
function GetVerb( Index : Integer ) : string; override;
end;
{$IFDEF TEEDBREG}
TDBChartCompEditor=class(TChartCompEditor)
public
procedure ExecuteVerb( Index : Integer ); override;
function GetVerbCount : Integer; override;
function GetVerb( Index : Integer ) : string; override;
end;
{$ENDIF}
TChartSeriesEditor=class(TComponentEditor)
public
procedure Edit; override;
procedure ExecuteVerb( Index : Integer ); override;
function GetVerbCount : Integer; override;
function GetVerb( Index : Integer ) : string; override;
end;
TChartPenProperty=class(TChartClassProperty)
public
procedure Edit; override;
end;
TChartBrushProperty=class(TChartClassProperty)
public
procedure Edit; override;
end;
{ Property Categories }
{$IFNDEF D6}
{$IFNDEF CLX}
{$IFDEF D5}
TChartAxesCategory = class(TPropertyCategory)
public
class function Name: string; override;
class function Description: string; override;
end;
TChartWallsCategory = class(TPropertyCategory)
public
class function Name: string; override;
class function Description: string; override;
end;
TChartTitlesCategory = class(TPropertyCategory)
public
class function Name: string; override;
class function Description: string; override;
end;
TChart3DCategory = class(TPropertyCategory)
public
class function Name: string; override;
class function Description: string; override;
end;
{$ENDIF}
{$ENDIF}
{$ENDIF}
TTeeDesigner={$IFDEF D6DESIGNER}
IDesigner
{$ELSE}
IFormDesigner
{$ENDIF};
TTeeEditSeriesProc=procedure(ASeries:TChartSeries; ADesigner:TTeeDesigner);
TTeeChartEditorHook=procedure(ADesigner: TTeeDesigner; AChart: TCustomChart;
EditSeriesProc: TTeeEditSeriesProc);
TTeeChartLanguageHook=procedure;
Var
TeeChartEditorHook : TTeeChartEditorHook=nil;
TeeChartLanguageHook : TTeeChartLanguageHook=nil;
{ for QrTeeReg.pas }
procedure EditChartDesign(AChart:TCustomChart);
procedure EditSeriesProc(ASeries:TChartSeries; ADesigner:TTeeDesigner);
procedure Register;
implementation
Uses {$IFNDEF LINUX}
Windows,
{$ENDIF}
TypInfo, Classes, SysUtils,
{$IFDEF TEEDBREG}
DB,
{$IFNDEF CLX}
DBTables,
{$ENDIF}
{$ENDIF}
{$IFDEF CLX}
QClipbrd, QGraphics, QForms, QControls, QDialogs, QMenus,
{$ELSE}
Clipbrd, Graphics, Forms, Controls, Dialogs, Menus,
{$ENDIF}
TeeGalleryPanel, EditChar, TeeProcs, TeeConst, TeeAbout,
TeeEditCha, TeeEdiSeri, TeeEdiGene, TeeEdiGrad, TeeShadowEditor,
{$IFDEF TEEDBREG}
DBChart, DBEditCh, TeeDBEdit, TeeData, TeeDBCrossTab,
{$ENDIF}
TeeCustEdit, Series, TeeSourceEdit,
TeePieEdit, TeeAreaEdit, TeeBarEdit, TeeFLineEdi, TeePenDlg,
TeeBrushDlg, GanttCh, TeeShape, BubbleCh, ArrowCha, TeeArrowEdi,
TeeGanttEdi, TeeShapeEdi, TeeCustomFuncEditor, TeeAvgFuncEditor,
TeePrevi, TeExport
{$IFNDEF CLX}
, TeeExpForm
{$ENDIF}
{$IFNDEF TEENOSERIESDESIGN}
, ColnEdit
{$ENDIF}
;
type
TChartLegendProperty=class(TChartClassProperty)
public
procedure Edit; override;
end;
TChartAxisProperty=class(TChartClassProperty)
public
procedure Edit; override;
end;
TChartAxisTitleProperty=class(TTeeClassProperty)
public
function GetAttributes : TPropertyAttributes; override;
end;
TChartSeriesListProperty=class(TTeeClassProperty)
public
procedure Edit; override;
function GetAttributes : TPropertyAttributes; override;
end;
TSeriesPointerProperty=class(TChartClassProperty)
public
procedure Edit; override;
end;
TChartTitleProperty=class(TChartClassProperty)
public
procedure Edit; override;
end;
TChartWallProperty=class(TChartClassProperty)
public
procedure Edit; override;
end;
TChartGradientProperty=class(TChartClassProperty)
public
procedure Edit; override;
end;
TTeeShadowProperty=class(TChartClassProperty)
public
procedure Edit; override;
end;
TBarSeriesGradientProperty=class(TChartClassProperty)
public
procedure Edit; override;
end;
TSeriesMarksProperty=class(TChartClassProperty)
public
procedure Edit; override;
end;
TView3DOptionsProperty=class(TChartClassProperty)
public
procedure Edit; override;
end;
{$IFDEF TEEDBREG}
type TDesignSources=class
FAddCurrent : Boolean;
FItems : TStrings;
FFormDesigner : TTeeDesigner;
FProc : TAddComponentDataSource;
Procedure AddDataSource(Const St:String);
end;
Procedure TDesignSources.AddDataSource(Const St:String);
Var tmpComp : TComponent;
begin
if St<>'' then
begin
tmpComp:=FFormDesigner.GetComponent(St);
if Assigned(tmpComp) and Assigned(FProc) then
FProc(tmpComp,FItems,FAddCurrent);
end;
end;
Procedure DesignTimeOnGetDesignerNames( AProc : TAddComponentDataSource;
ASeries : TChartSeries;
AItems : TStrings;
AddCurrent : Boolean );
Var tmpForm : TCustomForm;
begin
tmpForm:=GetParentForm(ASeries.ParentChart);
if Assigned(tmpForm) and Assigned(tmpForm.{$IFDEF CLX}DesignerHook{$ELSE}Designer{$ENDIF}) then
With TDesignSources.Create do
try
FProc:=AProc;
FItems:=AItems;
FAddCurrent:=AddCurrent;
{$IFDEF D6DESIGNER}
tmpForm.{$IFDEF CLX}DesignerHook{$ELSE}Designer{$ENDIF}.QueryInterface(IDesigner,FFormDesigner);
{$ELSE}
FFormDesigner:=tmpForm.Designer as TTeeDesigner;
{$ENDIF}
{$IFDEF TEEDBREG}
FFormDesigner.GetComponentNames(GetTypeData(TDataSource.ClassInfo),AddDataSource);
FFormDesigner.GetComponentNames(GetTypeData(TDataSet.ClassInfo),AddDataSource);
{$ENDIF}
FFormDesigner.GetComponentNames(GetTypeData(TChartSeries.ClassInfo),AddDataSource);
FFormDesigner.GetComponentNames(GetTypeData(TTeeSeriesSource.ClassInfo),AddDataSource);
finally
Free;
end;
end;
{$ENDIF}
{ TTeeClassProperty }
function TTeeClassProperty.GetValue: string;
begin
FmtStr(Result, '(%s)', [GetPropType^.Name]);
end;
{ Chart Editor }
procedure EditChartDesign(AChart:TCustomChart);
var Part : TChartClickedPart;
begin
With AChart do CalcClickedPart(GetCursorPos,Part);
EditChartPart(nil,AChart,Part);
end;
{ EditSeriesProc }
procedure EditSeriesProc(ASeries:TChartSeries; ADesigner:TTeeDesigner);
begin
EditSeries(nil,ASeries);
if Assigned(ADesigner) then ADesigner.Modified; { 5.01 }
end;
{ TChartCompEditor }
Function TChartCompEditor.Chart:TCustomChart;
begin
result:=TCustomChart(Component);
end;
procedure TChartCompEditor.Edit;
begin
EditChartDesign(Chart);
Designer.Modified;
end;
procedure TChartCompEditor.ExecuteVerb( Index : Integer );
begin
Case Index of
0..3: TeeShowAboutBox;
4: Edit;
5: ChartPreview(nil,Chart);
6: TeeExport(Application,Chart);
{$IFDEF TEESHOWCUSTOMAXES}
7: ShowCollectionEditor(Designer,Chart,Chart.CustomAxes,'CustomAxes');
{$ENDIF}
{$IFNDEF CLX}
{$IFDEF BCB}
7: if Assigned(TeeChartLanguageHook) then TeeChartLanguageHook;
{$ELSE}
8: TeeChartEditorHook(Designer,Chart,EditSeriesProc);
{$ENDIF}
{$ELSE}
8: if Assigned(TeeChartLanguageHook) then TeeChartLanguageHook;
{$ENDIF}
{$IFDEF CLX}7{$ELSE}9{$ENDIF}:
if Assigned(TeeChartLanguageHook) then TeeChartLanguageHook;
else
inherited;
end;
end;
function TChartCompEditor.GetVerbCount : Integer;
begin
Result := inherited GetVerbCount+{$IFDEF TEESHOWCUSTOMAXES}8{$ELSE}7{$ENDIF};
if Assigned(TeeChartEditorHook) then Inc(result);
if Assigned(TeeChartLanguageHook) then Inc(result);
end;
function TChartCompEditor.GetVerb( Index : Integer ) : string;
begin
result:='';
Case Index of
0: begin
result:=TeeMsg_Version;
if TeeIsTrial then result:=result+' TRIAL';
end;
1: result:=TeeMsg_Copyright;
2: result:={$IFDEF D5}cLineCaption{$ELSE}'-'{$ENDIF};
3: result:=TeeMsg_About;
4: result:=TeeMsg_EditChart;
5: result:=TeeMsg_PrintPreview;
6: result:=TeeMsg_ExportChart;
{$IFDEF TEESHOWCUSTOMAXES}
7: result:=TeeMsg_CustomAxes;
{$ENDIF}
{$IFDEF CLX}
7: result:=TeeMsg_AskLanguage;
{$ELSE}
{$IFDEF BCB}
7: result:=TeeMsg_AskLanguage;
{$ELSE}
8: result:=TeeMsg_SeriesList;
9: result:=TeeMsg_AskLanguage;
{$ENDIF}
{$ELSE}
8: result:=TeeMsg_AskLanguage;
{$ENDIF}
end;
end;
procedure TChartSeriesEditor.Edit;
begin
{$IFNDEF CLX}
EditSeriesProc(TChartSeries(Component),Designer);
{$ENDIF}
end;
procedure TChartSeriesEditor.ExecuteVerb( Index : Integer );
begin
if Index=0 then Edit else inherited;
end;
function TChartSeriesEditor.GetVerbCount : Integer;
begin
result:=inherited GetVerbCount+1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -