📄 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-2004 David Berneda }
{ All Rights Reserved }
{ }
{*****************************************}
unit TeeChartReg;
{$I TeeDefs.inc}
interface
Uses
{$IFDEF CLR}
{$IFDEF TEEEDITORS}
Borland.VCL.Design.DesignEditors, Borland.VCL.Design.DesignIntf,
{$ENDIF}
{$ELSE}
{$IFDEF D6DESIGNER}
DesignIntf, DesignEditors, PropertyCategories,
{$ELSE}
DsgnIntf,
{$ENDIF}
{$ENDIF}
Classes,
TeEngine, Chart, TeCanvas;
{$IFDEF CLR}
{$R 'Chart.TChart.bmp'}
{$R 'DBChart.TDBChart.bmp'}
{$R 'TeeDraw3D.TDraw3D.bmp'}
{$R 'TeeData.TSeriesDataSet.bmp'}
{$R 'TeeEdit.TChartPreviewer.bmp'}
{$R 'TChartEditor.bmp'}
{$R 'TTeeCommander.bmp'}
{$R 'TChartScrollBar.bmp'}
{$R 'TChartListBox.bmp'}
{$R 'TChartEditorPanel.bmp'}
{$R 'TChartGrid.bmp'}
{$R 'TChartGridNavigator.bmp'}
{$R 'TChartPageNavigator.bmp'}
{$R 'TChartGalleryPanel.bmp'}
{$R 'TChartWebSource.bmp'}
{$R 'TSeriesTextSource.bmp'}
{$R 'TTeeXMLSource.bmp'}
{$R 'TDBCrossTabSource.bmp'}
{$R 'TButtonColor.bmp'}
{$R 'TButtonPen.bmp'}
{$R 'TComboFlat.bmp'}
{$R 'TTeePreviewPanel.bmp'}
{$DEFINE SPLASH_BDS}
{$ELSE}
{$R TeeChart.res}
{$ENDIF}
{$IFNDEF BCB}
{$IFNDEF CLX}
{$IFNDEF TEENOSERIESDESIGN}
{$IFNDEF TEELITE}
{$DEFINE TEESHOWCUSTOMAXES}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$IFNDEF NOUSE_BDE}
{$DEFINE TEEDBREG}
{$ENDIF}
{$IFDEF KYLIXOPEN}
{$UNDEF TEEDBREG}
{$ENDIF}
type
{$IFDEF TEEEDITORS}
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}
{$ENDIF}
TTeeDesigner={$IFDEF CLR}
IDesigner
{$ELSE}
{$IFDEF D6DESIGNER}
IDesigner
{$ELSE}
IFormDesigner
{$ENDIF}
{$ENDIF}
;
TTeeEditSeriesProc=procedure(ASeries:TChartSeries; ADesigner:TTeeDesigner);
TTeeChartEditorHook=procedure(ADesigner: TTeeDesigner; AChart: TCustomChart;
EditSeriesProc: TTeeEditSeriesProc);
TTeeDesignOptionsHook=procedure;
Var
TeeChartEditorHook : TTeeChartEditorHook=nil;
TeeDesignOptionsHook : TTeeDesignOptionsHook=nil;
{ for QrTeeReg.pas }
procedure EditChartDesign(AChart:TCustomChart);
procedure EditSeriesProc(ASeries:TChartSeries; ADesigner:TTeeDesigner);
procedure Register;
{$IFDEF SPLASH_BDS}
type
TeeChartIDE=class
public
class procedure IDERegister; static;
end;
{$ENDIF}
implementation
Uses {$IFNDEF LINUX}
Windows,
{$ENDIF}
TypInfo,
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,
{$IFNDEF CLR}
TeeData,
{$ENDIF}
TeeDBCrossTab,
{$ENDIF}
{$IFDEF SPLASH_BDS}
Borland.Studio.ToolsAPI,
{$ENDIF}
TeeCustEdit, Series, TeeSourceEdit,
TeePieEdit, TeeAreaEdit, TeeBarEdit, TeeFLineEdi, TeePenDlg,
TeeBrushDlg, GanttCh, TeeShape, BubbleCh, ArrowCha, TeeArrowEdi,
TeeGanttEdi, TeeShapeEdi, TeeCustomFuncEditor, TeeAvgFuncEditor,
TeePrevi, TeExport
{$IFDEF TEELITE}
, TeeDesignOptions
{$ENDIF}
{$IFNDEF CLX}
, TeeExpForm
{$ENDIF}
{$IFNDEF TEENOSERIESDESIGN}
{$IFDEF CLR}
, Borland.Vcl.Design.ColnEdit
{$ELSE}
, ColnEdit
{$ENDIF}
{$ENDIF}
;
{$IFDEF TEEEDITORS}
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;
{$ENDIF}
{$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;
{$IFDEF CLR}
tmpDesigner : IDesignerNotify;
{$ENDIF}
begin
tmpForm:=GetParentForm(ASeries.ParentChart);
{$IFDEF CLR}
if Assigned(tmpForm) then
begin
ShowMessage('yes '+tmpForm.ClassName+' '+tmpForm.Name);
if Assigned(tmpForm.Designer) then ShowMessage('yes2') else ShowMessage('no2');
tmpDesigner:=tmpForm.GetRootDesigner;
if Assigned(tmpDesigner) then ShowMessage('yes3') else ShowMessage('no3');
end
else ShowMessage('no');
{$ENDIF}
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 CLR}
FFormDesigner:=tmpForm.Designer as TTeeDesigner;
{$ELSE}
{$IFDEF D6DESIGNER}
tmpForm.{$IFDEF CLX}DesignerHook{$ELSE}Designer{$ENDIF}.QueryInterface(IDesigner,FFormDesigner);
{$ELSE}
FFormDesigner:=tmpForm.Designer as TTeeDesigner;
{$ENDIF}
{$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
{$IFDEF CLR}
result:='('+GetPropType.ToString+')';
{$ELSE}
FmtStr(Result, '(%s)', [GetPropType^.Name]);
{$ENDIF}
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;
{$IFDEF TEEEDITORS}
{ 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);
else
begin
case Index of
{$IFDEF TEESHOWCUSTOMAXES}
7: ShowCollectionEditor(Designer,Chart,Chart.CustomAxes,'CustomAxes');
{$IFDEF CLX}
8: if Assigned(TeeDesignOptionsHook) then TeeDesignOptionsHook;
{$ELSE}
{$IFDEF BCB}
8: if Assigned(TeeDesignOptionsHook) then TeeDesignOptionsHook;
{$ELSE}
8: if Assigned(TeeChartEditorHook) then
TeeChartEditorHook(Designer,Chart,EditSeriesProc)
else
if Assigned(TeeDesignOptionsHook) then TeeDesignOptionsHook;
9: if Assigned(TeeDesignOptionsHook) then TeeDesignOptionsHook;
{$ENDIF}
{$ENDIF}
{$ELSE}
{$IFDEF CLX}
7: if Assigned(TeeDesignOptionsHook) then TeeDesignOptionsHook;
{$ELSE}
{$IFDEF BCB}
7: if Assigned(TeeDesignOptionsHook) then TeeDesignOptionsHook;
{$ELSE}
7: if Assigned(TeeChartEditorHook) then
TeeChartEditorHook(Designer,Chart,EditSeriesProc)
else
if Assigned(TeeDesignOptionsHook) then TeeDesignOptionsHook;
8: if Assigned(TeeDesignOptionsHook) then TeeDesignOptionsHook;
{$ENDIF}
{$ENDIF}
{$ENDIF}
else inherited;
end;
end;
end;
end;
function TChartCompEditor.GetVerbCount : Integer;
begin
Result:=inherited GetVerbCount+{$IFDEF TEESHOWCUSTOMAXES}8{$ELSE}7{$ENDIF};
if Assigned(TeeChartEditorHook) then Inc(result);
if Assigned(TeeDesignOptionsHook) 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;
else
begin
case Index of
{$IFDEF TEESHOWCUSTOMAXES}
7: result:=TeeMsg_CustomAxes;
{$IFDEF BCB}
8: result:=TeeMsg_Options;
{$ELSE}
8: if Assigned(TeeChartEditorHook) then result:=TeeMsg_SeriesList
else result:=TeeMsg_Options;
9: result:=TeeMsg_Options;
{$ENDIF}
{$ELSE}
{$IFDEF CLX}
7: result:=TeeMsg_Options;
{$ELSE}
{$IFDEF BCB}
7: result:=TeeMsg_Options;
{$ELSE}
7: if Assigned(TeeChartEditorHook) then result:=TeeMsg_SeriesList
else result:=TeeMsg_Options;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -