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

📄 teechartreg.pas

📁 BCB第三方组件
💻 PAS
📖 第 1 页 / 共 3 页
字号:
      if tmpSeries.ParentChart.IsValidDataSource(tmpSeries,tmpComp) then
	       FAddDataSetProc(S);
    end;
  end;
end;

{$IFDEF LCL}
function TSeriesDataSourceProperty.Designer:TTeeDesigner;
begin
  result:=nil;  // LCL Pending.
end;
{$ENDIF}

procedure TSeriesDataSourceProperty.GetValues(Proc: TGetStrProc);
begin
  if Assigned(TChartSeries(GetComponent(0)).ParentChart) then
  Begin
    FAddDataSetProc:=Proc;
    {$IFDEF TEEDBREG}
    Designer.GetComponentNames(GetTypeData(TDataSource.ClassInfo),AddDataSource);
    Designer.GetComponentNames(GetTypeData(TDataSet.ClassInfo),AddDataSource);
    {$ENDIF}
    Designer.GetComponentNames(GetTypeData(TChartSeries.ClassInfo),AddDataSource);
    Designer.GetComponentNames(GetTypeData(TTeeSeriesSource.ClassInfo),AddDataSource);
  end;
end;

{$IFDEF TEEDBREG}
{ TCrosstabField Property }
type
  TCrosstabFieldProperty=class(TStringProperty)
  public
    function GetAttributes : TPropertyAttributes; override;
    procedure GetValues(Proc: TGetStrProc); override;
  end;

  TCrossTabCompEditor=class(TComponentEditor)
  public
    procedure ExecuteVerb( Index : Integer ); override;
    function GetVerbCount : Integer; override;
    function GetVerb( Index : Integer ) : string; override;
  end;

function TCrosstabFieldProperty.GetAttributes : TPropertyAttributes;
Begin
  result:=inherited GetAttributes+[paValueList];
end;

procedure TCrosstabFieldProperty.GetValues(Proc: TGetStrProc);
var Crosstab : TDBCrossTabSource;
begin
  Crosstab:=TDBCrossTabSource(GetComponent(0));
  if Assigned(Crosstab.DataSet) then FillDataSetFields(Crosstab.DataSet,Proc);
end;

{ TCrossTabCompEditor }
procedure TCrossTabCompEditor.ExecuteVerb(Index:Integer);
begin
  if (Index=0) and Assigned(TDBCrossTabSource(Component).Series) then
  with TDBChartCrossTabEditor.Create(nil) do
  try
    Tag:={$IFDEF CLR}Variant{$ELSE}Integer{$ENDIF}(TDBCrossTabSource(Component).Series);
    PanelButtons.Show;

    Align:=alNone;
    Position:=poScreenCenter;

    ShowModal;
    
    Self.Designer.Modified;
  finally
  end
  else inherited;
end;

function TCrossTabCompEditor.GetVerbCount:Integer;
begin
  result:=inherited GetVerbCount+1;
end;

function TCrossTabCompEditor.GetVerb(Index:Integer):string;
begin
  if Index=0 then result:=TeeMsg_Edit
             else result:=inherited GetVerb(Index);
end;
{$ENDIF}

{ TValueSource Property }
type
  TValueSourceProperty=class(TStringProperty)
  public
    function GetAttributes : TPropertyAttributes; override;
    procedure GetValues(Proc: TGetStrProc); override;
  end;

function TValueSourceProperty.GetAttributes : TPropertyAttributes;
Begin
  result:=inherited GetAttributes+[paValueList];
end;

procedure TValueSourceProperty.GetValues(Proc: TGetStrProc);
Var AValueList : TChartValueList;
begin
  AValueList:=TChartValueList(GetComponent(0));
  With AValueList.Owner do
  if Assigned(ParentChart) then
      TCustomChart(ParentChart).FillValueSourceItems(AValueList,Proc);
end;

{ TSeriesSource Property }
type
  TSeriesSourceProperty=class(TStringProperty)
  public
    function GetAttributes : TPropertyAttributes; override;
    procedure GetValues(Proc: TGetStrProc); override;
  end;

procedure TSeriesSourceProperty.GetValues(Proc: TGetStrProc);
Var ASeries : TChartSeries;
begin
  ASeries:=TChartSeries(GetComponent(0));
  With ASeries do
  if Assigned(ParentChart) then
     TCustomChart(ParentChart).FillSeriesSourceItems(ASeries,Proc);
end;

function TSeriesSourceProperty.GetAttributes : TPropertyAttributes;
Begin
  result:=inherited GetAttributes+[paValueList];
end;

{$IFDEF TEEDBREG}

{ DBChart Editor }
procedure TDBChartCompEditor.ExecuteVerb( Index : Integer );
begin
  if Index+1=GetVerbCount then TCustomDBChart(Component).RefreshData
                          else inherited;
end;

function TDBChartCompEditor.GetVerbCount : Integer;
begin
  Result := inherited GetVerbCount+1;
end;

function TDBChartCompEditor.GetVerb( Index : Integer ) : string;
begin
  if Index+1=GetVerbCount then result:=TeeMsg_RefreshData
                          else result:=inherited GetVerb(Index);
end;

{$ENDIF}

{ View3DOptions Editor }
procedure TView3DOptionsProperty.Edit;
begin
  InternalEditPage(TCustomChart(TView3DOptions(GetObject).Parent),teeEdit3DPage);
end;

{$IFDEF D6}
Const TChartAxesCategory   ='Axes'; // Do not localize
      TChartWallsCategory  ='Walls'; // Do not localize
      TChartTitlesCategory ='Titles'; // Do not localize
      TChart3DCategory     ='3D'; // Do not localize
{$ELSE}
{$IFDEF CLX}
Const TChartAxesCategory   ='Axes'; // Do not localize
      TChartWallsCategory  ='Walls'; // Do not localize
      TChartTitlesCategory ='Titles'; // Do not localize
      TChart3DCategory     ='3D'; // Do not localize
{$ELSE}

{$IFDEF D5}
{ TChartAxesCategory }
class function TChartAxesCategory.Name: string;
begin
  Result:=TeeMsg_ChartAxesCategoryName;
end;

class function TChartAxesCategory.Description: string;
begin
  Result:=TeeMsg_ChartAxesCategoryDesc;
end;

{ TChartWallsCategory }
class function TChartWallsCategory.Name: string;
begin
  Result:=TeeMsg_ChartWallsCategoryName;
end;

class function TChartWallsCategory.Description: string;
begin
  Result:=TeeMsg_ChartWallsCategoryDesc;
end;

{ TChartTitlesCategory }
class function TChartTitlesCategory.Name: string;
begin
  Result:=TeeMsg_ChartTitlesCategoryName;
end;

class function TChartTitlesCategory.Description: string;
begin
  Result:=TeeMsg_ChartTitlesCategoryDesc;
end;

{ TChart3DCategory }
class function TChart3DCategory.Name: string;
begin
  Result:=TeeMsg_Chart3DCategoryName;
end;

class function TChart3DCategory.Description: string;
begin
  Result:=TeeMsg_Chart3DCategoryDesc;
end;
{$ENDIF}
{$ENDIF}
{$ENDIF}

{$ENDIF}

procedure Register;
begin
  RegisterNoIcon([ TCustomChartElement, TTeeFunction ]);

  // Was before: tcAdditional
  RegisterComponents( TeeMsg_TeeChartPalette, [TChart] );

  {$IFDEF TEEEDITORS}
  RegisterComponentEditor(TCustomChart,TChartCompEditor);
  RegisterComponentEditor(TImageFiltered,TImageFilteredEditor);
  {$ENDIF}

  {$IFDEF TEEDBREG}

  // Was before: tcDControls
  RegisterComponents( TeeMsg_TeeChartPalette, [TDBChart] );

  {$IFDEF TEEEDITORS}
  RegisterComponentEditor(TCustomDBChart,TDBChartCompEditor);
  RegisterComponentEditor(TDBCrossTabSource,TCrossTabCompEditor);
  {$ENDIF}

  RegisterComponents( TeeMsg_TeeChartPalette,
                      [ {$IFNDEF CLR}
                        TSeriesDataSet,
                        TChartDataSet,
                        {$ENDIF}
                        TDBCrossTabSource ] );
  {$ENDIF}

  {$IFDEF TEEEDITORS}
  {$IFDEF D6}
  RegisterComponentEditor(TChartSeries,TChartSeriesEditor);
  {$ENDIF}
  {$ENDIF}

  RegisterComponents(TeeMsg_TeeChartPalette,[ TButtonColor,
                                              TButtonPen,
                                              TButtonGradient,
                                              TDraw3D,
                                              TComboFlat,
                                              TImageFiltered ]);

  {$IFDEF CLX}
  RegisterComponents(TeeMsg_TeeChartPalette,[TUpDown]);
  {$ENDIF}

  {$IFNDEF CLR}
  {$IFNDEF CLX}
  RegisterNonActiveX( [ TCustomTeePanel,
			TCustomAxisPanel,
			TCustomChart,TChart
                        {$IFDEF TEEDBREG}
			,TCustomDBChart,TDBChart
                        {$ENDIF}
                      ] , axrIncludeDescendants );
  {$ENDIF}
  {$ENDIF}

  {$IFDEF TEEEDITORS}
  RegisterPropertyEditor(TypeInfo(TSeriesMarks),TChartSeries,
				  'Marks', TSeriesMarksProperty); // Do not localize

  // 7.05
  RegisterPropertyEditor(TypeInfo(TSeriesPointer),nil,'',TSeriesPointerProperty);

  RegisterPropertyEditor(TypeInfo(TChartWall),nil,'',TChartWallProperty);

  RegisterPropertyEditor(TypeInfo(TChartTitle),TCustomChart,
				  '', TChartTitleProperty);

  RegisterPropertyEditor(TypeInfo(TCustomChartLegend),TCustomChart,
				  'Legend', TChartLegendProperty); // Do not localize

  RegisterPropertyEditor(TypeInfo(TChartAxis),TCustomChart,
				  '', TChartAxisProperty);

  RegisterPropertyEditor(TypeInfo(TCustomSeriesList), nil, '',
						     TCustomSeriesListProperty);

  RegisterPropertyEditor(TypeInfo(TChartTools), TCustomChart, 'Tools', // Do not localize
						     TChartToolsProperty);

  RegisterPropertyEditor(TypeInfo(TChartAxisTitle), TChartAxis, 'Title', // Do not localize
						    TChartAxisTitleProperty);
                
  RegisterPropertyEditor(TypeInfo(TCustomTeeGradient),nil,
				  '', TChartGradientProperty);

  RegisterPropertyEditor(TypeInfo(TTeeShadow),nil,'', TTeeShadowProperty);

  RegisterPropertyEditor(TypeInfo(TBarSeriesGradient),TCustomBarSeries,
				  '', TBarSeriesGradientProperty);

  RegisterPropertyEditor( TypeInfo(TComponent),
			  TChartSeries,'DataSource',TSeriesDataSourceProperty); // Do not localize

  RegisterPropertyEditor( TypeInfo(String),
			  TChartValueList,'ValueSource',TValueSourceProperty); // Do not localize

  {$IFDEF TEEDBREG}
  RegisterPropertyEditor( TypeInfo(String),
			  TDBCrossTabSource,'GroupField',TCrosstabFieldProperty); // Do not localize

  RegisterPropertyEditor( TypeInfo(String),
			  TDBCrossTabSource,'LabelField',TCrosstabFieldProperty); // Do not localize

  RegisterPropertyEditor( TypeInfo(String),
			  TDBCrossTabSource,'ValueField',TCrosstabFieldProperty); // Do not localize
  {$ENDIF}

  RegisterPropertyEditor( TypeInfo(String),
			  TChartSeries,'ColorSource',TSeriesSourceProperty); // Do not localize

  RegisterPropertyEditor( TypeInfo(String),
			  TChartSeries,'XLabelsSource',TSeriesSourceProperty); // Do not localize

  RegisterPropertyEditor(TypeInfo(TChartPen), nil, '',TChartPenProperty);
  RegisterPropertyEditor(TypeInfo(TChartBrush), nil, '',TChartBrushProperty);

  RegisterPropertyEditor(TypeInfo(TView3DOptions),TCustomChart,
				  'View3DOptions', TView3DOptionsProperty); // Do not localize

  RegisterPropertyEditor(TypeInfo(TChartPage),nil,'',TChartPageProperty);

//  RegisterPropertyEditor(TypeInfo(TFilterItems),nil,'',TFilterItemsProperty);

  {$IFDEF D5}
  RegisterPropertyInCategory(TChartAxesCategory, TypeInfo(TChartAxis));
  RegisterPropertyInCategory(TChartAxesCategory, TCustomAxisPanel, 'AxisBehind'); // Do not localize
  RegisterPropertyInCategory(TChartAxesCategory, TCustomAxisPanel, 'AxisVisible'); // Do not localize
  RegisterPropertyInCategory(TChartAxesCategory, TypeInfo(TChartCustomAxes));
  RegisterPropertyInCategory(TChartWallsCategory, TypeInfo(TCustomChartWall));
  RegisterPropertyInCategory(TChartWallsCategory, TCustomAxisPanel, 'View3DWalls'); // Do not localize
  RegisterPropertyInCategory(TChartTitlesCategory, TypeInfo(TChartTitle));
  RegisterPropertyInCategory(TChart3DCategory, TypeInfo(TView3DOptions));
  RegisterPropertyInCategory(TChart3DCategory, TCustomTeePanel, 'View3D'); // Do not localize
  RegisterPropertyInCategory(TChart3DCategory, TCustomTeePanel, 'Chart3DPercent'); // Do not localize
  {$ENDIF}

  {$ENDIF}
end;

{$IFDEF SPLASH_BDS}
//class procedure TeeChartIDE.IDERegister;

procedure IDERegister;
const
  SteemaDotCom = 'www.steema.com'; // Do not localize
  TeeChartComponents = 'TeeChart Components'; // Do not localize

var b : TBitmap;

   procedure AddSplash;
   var about  : IOTAAboutBoxService;
       splash : IOTASplashScreenService;
   begin
    about:=BorlandIDE.GetService(System.Type(typeof(IOTAAboutBoxService))) as IOTAAboutBoxService;

    if Assigned(about) then
    begin
      about.AddPluginInfo(TeeMsg_TeeChartPalette, TeeMsg_TeeChartPalette,
                          IntPtr(b.Handle),False,
                          TeeChartComponents+#13+TeeMsg_Copyright+#13+
                          SteemaDotCom,TeeMsg_Version);

    end;

    splash:=BorlandIDE.SplashScreenService;

    if Assigned(splash) then
    begin
       splash.AddProductBitmap(TeeMsg_TeeChartPalette,
                            IntPtr(b.Handle),False,
                            TeeChartComponents+#13+TeeMsg_Copyright+#13+
                            SteemaDotCom,TeeMsg_Version);

       splash.SetProductIcon(IntPtr(b.Handle));
       splash.ShowProductSplash(IntPtr(b.Handle));
    end;
  end;

begin
  b:=TBitmap.Create;
  try
    with TTeeAboutForm.Create(nil) do
    try
      b.Assign(Image1.Picture);
    finally
      Free;
    end;

    AddSplash;
  finally
    b.Free;
  end;
end;
{$ENDIF}

{$IFDEF TEELITE}
Procedure TeeOptionsFormHook;
begin
  with TOptionsForm.Create(nil) do
  try
    ShowModal;
  finally
    Free;
  end;
end;
{$ENDIF}

initialization
  {$IFDEF TEEDBREG}
  OnGetDesignerNames:=DesignTimeOnGetDesignerNames;
  {$ENDIF}

  {$IFDEF TEELITE}
  TeeDesignOptionsHook:=TeeOptionsFormHook;
  {$ENDIF}

finalization
  {$IFDEF TEELITE}
  TeeDesignOptionsHook:=nil;  // For TeeChartReg "Options..." menu item
  {$ENDIF}

  {$IFDEF TEEDBREG}
  OnGetDesignerNames:=nil;
  {$ENDIF}
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -