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

📄 teechartreg.pas

📁 第三方控件:PaintGrid.pas 网格型仪表控件源文件 Mymeter.pas 圆型仪表控件源文件 Project1是这两个控件的使用范例。 该
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  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:=nil;

  {$IFDEF D9}
  if ASeries.Owner is TCustomForm then
     tmpForm:=TCustomForm(ASeries.Owner);
  {$ENDIF}

  if not Assigned(tmpForm) then
     tmpForm:=GetParentForm(ASeries.ParentChart);

  {$IFDEF CLR}
  if Assigned(tmpForm) then
     tmpDesigner:=tmpForm.GetRootDesigner;
  {$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}
    {$IFDEF LCL}
    FFormDesigner:=nil;  // LCL Pending.
    {$ELSE}
    FFormDesigner:=tmpForm.Designer as TTeeDesigner;
    {$ENDIF}
    {$ENDIF}
    {$ENDIF}

    {$IFNDEF LCL}

    {$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);

    {$ENDIF}
  finally
    Free;
  end;
end;
{$ENDIF}

{ TTeeClassProperty }
{$IFDEF LCL}
function TTeeClassProperty.Designer:TTeeClassProperty;
begin
  result:=Self;
end;
{$ENDIF}

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{$IFDEF LCL}(ASeries){$ENDIF}; { 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 
              {$IFNDEF LCL} // LCL Pending. 
              TeeChartEditorHook(Designer,Chart,EditSeriesProc)
              {$ENDIF}
           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; 
        8: result:=TeeMsg_Options;
        {$ENDIF}
        {$ENDIF}
     {$ENDIF}
     end;
   end;
  end;
end;

procedure TChartSeriesEditor.Edit;
begin
  {$IFNDEF CLX}
  {$IFNDEF LCL} // LCL Pending.
  EditSeriesProc(TChartSeries(Component),Designer);
  {$ENDIF}
  {$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;
end;

function TChartSeriesEditor.GetVerb( Index : Integer ) : string;
begin
  if Index=0 then result:=TeeMsg_Edit
             else result:=inherited GetVerb(Index);
end;

{ Generic Chart Class Editor (for chart sub-components) }

{ TChartClassProperty }
function TChartClassProperty.GetAttributes: TPropertyAttributes;
begin
  Result := [paSubProperties,paDialog];
end;

procedure TChartClassProperty.InternalEditPage( AChart:TCustomChart;
						APage:Integer);
begin
  EditChartPage(nil,AChart,APage);
  Designer.Modified;
end;

{ Chart Legend Editor }
procedure TChartLegendProperty.Edit;
begin
  EditChartLegend(nil,TCustomChart(TChartLegend({$IFDEF CLR}GetObjValue{$ELSE}GetOrdValue{$ENDIF}).ParentChart));
  Designer.Modified;
end;

{ Axis Chart Editor }
procedure TChartAxisProperty.Edit;
begin
  EditChartAxis(nil,TChartAxis({$IFDEF CLR}GetObjValue{$ELSE}GetOrdValue{$ENDIF}));
  Designer.Modified;
end;

{ Chart Series Editor }
function TChartSeriesListProperty.GetAttributes: TPropertyAttributes;
begin
  Result := [paDialog];
end;

procedure TChartSeriesListProperty.Edit;
Var AChart : TCustomChart;
begin
  AChart:=TCustomChart(TChartSeriesList({$IFDEF CLR}GetObjValue{$ELSE}GetOrdValue{$ENDIF}).Owner);
  if Assigned(TeeChartEditorHook) then
     {$IFNDEF LCL} // LCL Pending.
     TeeChartEditorHook(Designer,AChart,EditSeriesProc)
     {$ENDIF}
  else
  begin
    EditChart(nil,AChart);
    Designer.Modified;
  end;
end;

{ Chart Axis Title Editor }
function TChartAxisTitleProperty.GetAttributes: TPropertyAttributes;
begin
  Result := [paSubProperties];
end;

{ Chart Title Editor }
procedure TChartTitleProperty.Edit;
begin
  EditChartTitle(nil,TChartTitle({$IFDEF CLR}GetObjValue{$ELSE}GetOrdValue{$ENDIF}));
  Designer.Modified;
end;

{ Chart Wall Editor }
procedure TChartWallProperty.Edit;
begin
  EditChartWall(nil,TChartWall({$IFDEF CLR}GetObjValue{$ELSE}GetOrdValue{$ENDIF}));
  Designer.Modified;
end;

{ Series Pointer Editor }
procedure TSeriesPointerProperty.Edit;
var tmp : TSeriesPointer;
begin
  tmp:=TSeriesPointer({$IFDEF CLR}GetObjValue{$ELSE}GetOrdValue{$ENDIF});

  {$IFNDEF CLX}
  if tmp.ParentSeries is TCustomSeries then
     {$IFNDEF LCL} // LCL Pending.
     EditSeriesProc(tmp.ParentSeries,Designer)
     {$ENDIF}
  else
  {$ENDIF}
  if EditSeriesPointer(nil,tmp) then // 7.05
     Designer.Modified;
end;

{ ChartPen Editor }
procedure TChartPenProperty.Edit;
begin
  if EditChartPen(nil,TChartPen({$IFDEF CLR}GetObjValue{$ELSE}GetOrdValue{$ENDIF})) then
     Designer.Modified;
end;

{ ChartBrush Editor }
procedure TChartBrushProperty.Edit;
begin
  if EditChartBrush(nil,TChartBrush({$IFDEF CLR}GetObjValue{$ELSE}GetOrdValue{$ENDIF})) then
     Designer.Modified;
end;

{ Chart Series Marks Editor }
procedure TSeriesMarksProperty.Edit;
var ASeriesMarks : TSeriesMarks;
begin
  ASeriesMarks:=TSeriesMarks({$IFDEF CLR}GetObjValue{$ELSE}GetOrdValue{$ENDIF});
  if Assigned(ASeriesMarks) then
  With ASeriesMarks do
  if Assigned(ParentSeries) then
  begin
    EditSeriesMarks(nil,ParentSeries);
    Designer.Modified;
  end;
end;

{ Gradient Editor }
procedure TChartGradientProperty.Edit;
begin
  if EditTeeGradient(nil,TCustomTeeGradient({$IFDEF CLR}GetObjValue{$ELSE}GetOrdValue{$ENDIF})) then
     Designer.Modified;
end;

{ TTeeShadowProperty }
procedure TTeeShadowProperty.Edit;
begin
  if EditTeeShadow(nil,TTeeShadow({$IFDEF CLR}GetObjValue{$ELSE}GetOrdValue{$ENDIF})) then Designer.Modified;
end;

{ Bar Series Gradient Editor }
procedure TBarSeriesGradientProperty.Edit;
begin
  EditTeeGradient(nil,TBarSeriesGradient({$IFDEF CLR}GetObjValue{$ELSE}GetOrdValue{$ENDIF}),True,True);
end;

{ TSeriesDataSource Property }
type
  TSeriesDataSourceProperty = class(TComponentProperty)
  private
    FAddDataSetProc:TGetStrProc;
    procedure AddDataSource(Const S:String);
    {$IFDEF LCL}
    function Designer:TTeeDesigner;
    {$ENDIF}
  public
    procedure GetValues(Proc: TGetStrProc); override;
  end;

procedure TSeriesDataSourceProperty.AddDataSource(Const S:String);
Var tmpSeries : TChartSeries;
    tmpComp   : TComponent;
begin
  if S<>'' then
  begin
    tmpComp:=Designer.GetComponent(S);

⌨️ 快捷键说明

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