📄 teechartreg.pas
字号:
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 + -