TAChart: Complete localization

git-svn-id: trunk@50758 -
This commit is contained in:
wp 2015-12-12 21:39:31 +00:00
parent 547f7b7309
commit 14381c96ad
14 changed files with 410 additions and 71 deletions

View File

@ -118,7 +118,7 @@ var
i: Integer;
begin
for i := 0 to SeriesClassRegistry.Count - 1 do
AddSubcomponentClass(SeriesClassRegistry[i], i);
AddSubcomponentClass(SeriesClassRegistry.GetCaption(i), i);
end;
function TSeriesEditorForm.GetChildrenList: TFPList;
@ -129,7 +129,7 @@ end;
function TSeriesEditorForm.MakeSubcomponent(
AOwner: TComponent; ATag: Integer): TComponent;
begin
Result := TSeriesClass(SeriesClassRegistry.Objects[ATag]).Create(AOwner);
Result := TSeriesClass(SeriesClassRegistry.GetClass(ATag)).Create(AOwner);
end;
end.

View File

@ -113,7 +113,7 @@ var
i: Integer;
begin
for i := 0 to ToolsClassRegistry.Count - 1 do
AddSubcomponentClass(ToolsClassRegistry[i], i);
AddSubcomponentClass(ToolsClassRegistry.GetCaption(i), i);
end;
function TToolsEditorForm.GetChildrenList: TFPList;
@ -124,7 +124,7 @@ end;
function TToolsEditorForm.MakeSubcomponent(
AOwner: TComponent; ATag: Integer): TComponent;
begin
Result := TChartToolClass(ToolsClassRegistry.Objects[ATag]).Create(AOwner);
Result := TChartToolClass(ToolsClassRegistry.GetClass(ATag)).Create(AOwner);
end;
end.

View File

@ -31,20 +31,92 @@ msgstr "Hinzuf."
#: tachartstrconsts.rsareaseries
msgid "Area series"
msgstr "Flächen-Diagramm"
msgstr "Fläche-Diagramm"
#: tachartstrconsts.rsautoscale
msgid "Auto scale"
msgstr "Auto-Skalierung"
#: tachartstrconsts.rsbarseries
msgid "Bar series"
msgstr "Säulen/Balken-Diagramm"
#: tachartstrconsts.rsboxandwhiskerseries
msgid "Box-and-whiskers series"
msgstr "Box-und-Whisker-Plot"
#: tachartstrconsts.rsbsplineseries
msgid "B-Spline series"
msgstr "B-Spline"
#: tachartstrconsts.rsbubbleseries
msgid "Bubble series"
msgstr "Blasen-Diagramm"
#: tachartstrconsts.rscolormapseries
msgid "Color map series"
msgstr "Farbkarten-Plot"
#: tachartstrconsts.rsconstantline
msgid "Constant line"
msgstr "Konstante Linie"
#: tachartstrconsts.rscubicsplineseries
msgid "Cubic spline series"
msgstr "Kubischer Spline"
#: tachartstrconsts.rscumulativenormaldistribution
msgid "Cumulative normal distribution"
msgstr "Kumulative Normalverteilung"
#: tachartstrconsts.rsdatapointclick
msgid "Data point click"
msgstr "Klick auf Datenpunkt"
#: tachartstrconsts.rsdatapointcrosshair
msgid "Data point crosshair"
msgstr "Fadenkreuz für Datenpunkte"
#: tachartstrconsts.rsdatapointdrag
msgid "Data point drag"
msgstr "Datenpunkt verschieben"
#: tachartstrconsts.rsdatapointhint
msgid "Data point hint"
msgstr "Datenpunkt-Hinweis"
#: tachartstrconsts.rsdelete
msgid "Delete"
msgstr "Entf."
#: tachartstrconsts.rsdistancemeasurement
msgid "Distance measurement"
msgstr "Distanzmessung"
#: tachartstrconsts.rsfunctionseries
msgid "Function series"
msgstr "Funktions-Diagramm"
#: tachartstrconsts.rsleastsquaresfitseries
msgid "Least-squares fit series"
msgstr "Fit"
#: tachartstrconsts.rslinear
msgid "Linear"
msgstr "Linear"
#: tachartstrconsts.rslineseries
msgid "Line series"
msgstr "Linien-Diagramm"
#: tachartstrconsts.rslogarithmic
msgid "Logarithmic"
msgstr "Logarithmisch"
#: tachartstrconsts.rsmanhattanplotseries
msgid "Manhattan plot series"
msgstr "Manhatten-Plot"
#: tachartstrconsts.rsmovedown
msgid "Down"
msgstr "Ab"
@ -53,10 +125,59 @@ msgstr "Ab"
msgid "Up"
msgstr "Auf"
#: tachartstrconsts.rsopenhighlowcloseseries
msgid "Open-high-low-close series"
msgstr "Öffnung-Höchst-Tiefst-Geschlossen"
#: tachartstrconsts.rspanningbyclick
msgid "Panning by click"
msgstr "Verschieben durch Klicken"
#: tachartstrconsts.rspanningbydrag
msgid "Panning by drag"
msgstr "Verschieben durch Ziehen"
#: tachartstrconsts.rspanningbymousewheel
msgid "Panning by mouse wheel"
msgstr "Verschieben mit Mausrad"
#: tachartstrconsts.rsparametriccurveseries
msgid "Parametric curve series"
msgstr "Parametrische Kurve"
#: tachartstrconsts.rspieseries
msgid "Pie series"
msgstr "Torten-Diagramm"
#: tachartstrconsts.rspolarseries
msgid "Polar series"
msgstr "Polar-Diagramm"
#: tachartstrconsts.rsreticule
msgid "Reticule"
msgstr "Fadenkreuz"
#: tachartstrconsts.rsuserdefined
msgctxt "tachartstrconsts.rsuserdefined"
msgid "User-defined"
msgstr "Benutzerdefiniert"
#: tachartstrconsts.rsuserdrawnseries
msgid "User-drawn series"
msgstr "Benutzer-definiertes Diagramm"
#: tachartstrconsts.rszoombyclick
msgid "Zoom by click"
msgstr "Zoomen durch Klicken"
#: tachartstrconsts.rszoombydrag
msgid "Zoom by drag"
msgstr "Zommen durch Ziehen"
#: tachartstrconsts.rszoombymousewheel
msgid "Zoom by mouse-wheel"
msgstr "Zoomen mit Mausrad"
#: tachartstrconsts.sesserieseditortitle
msgid "Edit series"
msgstr "Datenreihe bearbeiten"

View File

@ -21,18 +21,90 @@ msgstr ""
msgid "Area series"
msgstr ""
#: tachartstrconsts.rsautoscale
msgid "Auto scale"
msgstr ""
#: tachartstrconsts.rsbarseries
msgid "Bar series"
msgstr ""
#: tachartstrconsts.rsboxandwhiskerseries
msgid "Box-and-whiskers series"
msgstr ""
#: tachartstrconsts.rsbsplineseries
msgid "B-Spline series"
msgstr ""
#: tachartstrconsts.rsbubbleseries
msgid "Bubble series"
msgstr ""
#: tachartstrconsts.rscolormapseries
msgid "Color map series"
msgstr ""
#: tachartstrconsts.rsconstantline
msgid "Constant line"
msgstr ""
#: tachartstrconsts.rscubicsplineseries
msgid "Cubic spline series"
msgstr ""
#: tachartstrconsts.rscumulativenormaldistribution
msgid "Cumulative normal distribution"
msgstr ""
#: tachartstrconsts.rsdatapointclick
msgid "Data point click"
msgstr ""
#: tachartstrconsts.rsdatapointcrosshair
msgid "Data point crosshair"
msgstr ""
#: tachartstrconsts.rsdatapointdrag
msgid "Data point drag"
msgstr ""
#: tachartstrconsts.rsdatapointhint
msgid "Data point hint"
msgstr ""
#: tachartstrconsts.rsdelete
msgid "Delete"
msgstr ""
#: tachartstrconsts.rsdistancemeasurement
msgid "Distance measurement"
msgstr ""
#: tachartstrconsts.rsfunctionseries
msgid "Function series"
msgstr ""
#: tachartstrconsts.rsleastsquaresfitseries
msgid "Least-squares fit series"
msgstr ""
#: tachartstrconsts.rslinear
msgid "Linear"
msgstr ""
#: tachartstrconsts.rslineseries
msgid "Line series"
msgstr ""
#: tachartstrconsts.rslogarithmic
msgid "Logarithmic"
msgstr ""
#: tachartstrconsts.rsmanhattanplotseries
msgid "Manhattan plot series"
msgstr ""
#: tachartstrconsts.rsmovedown
msgid "Down"
msgstr ""
@ -41,10 +113,59 @@ msgstr ""
msgid "Up"
msgstr ""
#: tachartstrconsts.rsopenhighlowcloseseries
msgid "Open-high-low-close series"
msgstr ""
#: tachartstrconsts.rspanningbyclick
msgid "Panning by click"
msgstr ""
#: tachartstrconsts.rspanningbydrag
msgid "Panning by drag"
msgstr ""
#: tachartstrconsts.rspanningbymousewheel
msgid "Panning by mouse wheel"
msgstr ""
#: tachartstrconsts.rsparametriccurveseries
msgid "Parametric curve series"
msgstr ""
#: tachartstrconsts.rspieseries
msgid "Pie series"
msgstr ""
#: tachartstrconsts.rspolarseries
msgid "Polar series"
msgstr ""
#: tachartstrconsts.rsreticule
msgid "Reticule"
msgstr ""
#: tachartstrconsts.rsuserdefined
msgctxt "tachartstrconsts.rsuserdefined"
msgid "User-defined"
msgstr ""
#: tachartstrconsts.rsuserdrawnseries
msgid "User-drawn series"
msgstr ""
#: tachartstrconsts.rszoombyclick
msgid "Zoom by click"
msgstr ""
#: tachartstrconsts.rszoombydrag
msgid "Zoom by drag"
msgstr ""
#: tachartstrconsts.rszoombymousewheel
msgid "Zoom by mouse-wheel"
msgstr ""
#: tachartstrconsts.sesserieseditortitle
msgid "Edit series"
msgstr ""

View File

@ -8,8 +8,21 @@ resourcestring
// Series types
rsAreaSeries = 'Area series';
rsBarSeries = 'Bar series';
rsBoxAndWhiskerSeries = 'Box-and-whiskers series';
rsBubbleSeries = 'Bubble series';
rsBSplineSeries = 'B-Spline series';
rsColorMapSeries = 'Color map series';
rsConstantLine = 'Constant line';
rsCubicSplineSeries = 'Cubic spline series';
rsFunctionSeries = 'Function series';
rsLeastSquaresFitSeries = 'Least-squares fit series';
rsLineSeries = 'Line series';
rsManhattanPlotSeries = 'Manhattan plot series';
rsOpenHighLowCloseSeries = 'Open-high-low-close series';
rsParametricCurveSeries = 'Parametric curve series';
rsPieSeries = 'Pie series';
rsPolarSeries = 'Polar series';
rsUserDrawnSeries = 'User-drawn series';
// Series editor
sesSeriesEditorTitle = 'Edit series';
@ -28,14 +41,31 @@ resourcestring
// Tool editor
tasToolsEditorTitle = 'Edit tools';
rsZoomByDrag = 'Zoom by drag';
rsZoomByClick = 'Zoom by click';
rsZoomByMousewheel = 'Zoom by mouse-wheel';
rsPanningByDrag = 'Panning by drag';
rsPanningByClick = 'Panning by click';
rsPanningByMousewheel = 'Panning by mouse wheel';
rsReticule = 'Reticule';
rsDataPointClick = 'Data point click';
rsDataPointDrag = 'Data point drag';
rsDataPointHint = 'Data point hint';
rsDataPointCrossHair = 'Data point crosshair';
rsUserDefined = 'User-defined';
rsDistanceMeasurement = 'Distance measurement';
// Transformations
tasAxisTransformsEditorTitle = 'Edit axis transformations';
rsAutoScale = 'Auto scale';
rsCumulativeNormalDistribution = 'Cumulative normal distribution';
rsLinear = 'Linear';
rsLogarithmic = 'Logarithmic';
// ChartUtils
tasFailedSubcomponentRename = 'Failed to rename components: %s';
implementation
end.

View File

@ -256,6 +256,23 @@ type
property Item[AIndex: Integer]: TElem read GetItem; default;
end;
PStr = ^String; // PString is declared in system and in objpas!
TClassRegistryItem = class
FClass: TClass;
FCaption: PStr;
constructor Create(AClass: TClass; ACaption: PStr);
end;
TClassRegistry = class(TFPList)
public
destructor Destroy; override;
procedure Clear;
function GetCaption(AIndex: Integer): String;
function GetClass(AIndex: Integer): TClass;
function IndexOfClass(AClass: TClass): Integer;
end;
const
PUB_INT_SET_ALL = '';
PUB_INT_SET_EMPTY = '-';
@ -969,6 +986,55 @@ begin
end;
end;
{ TClassRegistryItem }
constructor TClassRegistryItem.Create(AClass: TClass; ACaption: PStr);
begin
FClass := AClass;
FCaption := ACaption;
end;
{ TClassRegistry }
destructor TClassRegistry.Destroy;
begin
Clear;
inherited;
end;
procedure TClassRegistry.Clear;
var
i: Integer;
begin
for i:= Count-1 downto 0 do
TObject(Items[i]).Free;
inherited;
end;
function TClassRegistry.GetCaption(AIndex: Integer): String;
var
P: PStr;
begin
P := TClassRegistryItem(Items[AIndex]).FCaption;
if P = nil then Result := '' else Result := P^;
end;
function TClassRegistry.GetClass(AIndex: Integer): TClass;
begin
Result := TClassRegistryItem(Items[AIndex]).FClass;
end;
function TClassRegistry.IndexOfClass(AClass: TClass): Integer;
begin
for Result := 0 to Count-1 do
if TClassRegistryItem(Items[Result]).FClass = AClass then
exit;
Result := -1;
end;
initialization
DrawData := TDrawDataRegistry.Create;

View File

@ -123,7 +123,7 @@ implementation
uses
GraphMath, Math, SysUtils, Types,
TAChartAxis, TACustomSeries, TAGeometry;
TAChartStrConsts, TAChartAxis, TACustomSeries, TAGeometry;
const
DEF_DISTANCE_FORMAT = '%0:.9g';
@ -407,7 +407,7 @@ end;
initialization
RegisterChartToolClass(TDataPointDistanceTool, 'Distance measurement');
RegisterChartToolClass(TDataPointDistanceTool, @rsDistanceMeasurement);
end.

View File

@ -381,7 +381,7 @@ implementation
uses
ipf, GraphType, IntfGraphics, Math, StrUtils, SysUtils,
TAGeometry, TAGraph, TAMath;
TAChartStrConsts, TAGeometry, TAGraph, TAMath;
const
DEF_PARAM_MIN = 0.0;
@ -1940,12 +1940,12 @@ begin
end;
initialization
RegisterSeriesClass(TFuncSeries, 'Function series');
RegisterSeriesClass(TParametricCurveSeries, 'Parametric curve series');
RegisterSeriesClass(TBSplineSeries, 'B-Spline series');
RegisterSeriesClass(TCubicSplineSeries, 'Cubic spline series');
RegisterSeriesClass(TFitSeries, 'Least-squares fit series');
RegisterSeriesClass(TColorMapSeries, 'Color map series');
RegisterSeriesClass(TFuncSeries, @rsFunctionSeries);
RegisterSeriesClass(TParametricCurveSeries, @rsParametricCurveSeries);
RegisterSeriesClass(TBSplineSeries, @rsBSplineSeries);
RegisterSeriesClass(TCubicSplineSeries, @rsCubicSplineSeries);
RegisterSeriesClass(TFitSeries, @rsLeastSquaresFitSeries);
RegisterSeriesClass(TColorMapSeries, @rsColorMapSeries);
end.

View File

@ -447,10 +447,10 @@ type
end;
procedure Register;
procedure RegisterSeriesClass(ASeriesClass: TSeriesClass; const ACaption: string);
procedure RegisterSeriesClass(ASeriesClass: TSeriesClass; const ACaption: PStr);
var
SeriesClassRegistry: TStringList;
SeriesClassRegistry: TClassRegistry = nil;
OnInitBuiltinTools: function(AChart: TChart): TBasicChartToolset;
implementation
@ -474,17 +474,17 @@ var
begin
RegisterComponents(CHART_COMPONENT_IDE_PAGE, [TChart]);
for i := 0 to SeriesClassRegistry.Count - 1 do begin
sc := TSeriesClass(SeriesClassRegistry.Objects[i]);
sc := TSeriesClass(SeriesClassRegistry.GetClass(i));
RegisterClass(sc);
RegisterNoIcon([sc]);
end;
end;
procedure RegisterSeriesClass(
ASeriesClass: TSeriesClass; const ACaption: String);
ASeriesClass: TSeriesClass; const ACaption: PStr);
begin
if SeriesClassRegistry.IndexOfObject(TObject(ASeriesClass)) < 0 then
SeriesClassRegistry.AddObject(ACaption, TObject(ASeriesClass));
if SeriesClassRegistry.IndexOfClass(ASeriesClass) < 0 then
SeriesClassRegistry.Add(TClassRegistryItem.Create(ASeriesClass, ACaption));
end;
procedure WriteComponentToStream(AStream: TStream; AComponent: TComponent);
@ -987,7 +987,7 @@ begin
exit;
end;
for i := 0 to SeriesClassRegistry.Count - 1 do begin
AClass := TSeriesClass(SeriesClassRegistry.Objects[i]);
AClass := TSeriesClass(SeriesClassRegistry.GetClass(i));
if AClass.ClassNameIs(AClassName) then exit;
end;
AClass := nil;
@ -1896,7 +1896,7 @@ end;
initialization
SkipObsoleteChartProperties;
SeriesClassRegistry := TStringList.Create;
SeriesClassRegistry := TClassRegistry.Create;
ShowMessageProc := @ShowMessage;
finalization

View File

@ -189,7 +189,8 @@ type
implementation
uses
FPCanvas, Math, SysUtils, TACustomSource, TAGeometry, TAGraph, TAMath;
FPCanvas, Math, SysUtils,
TAChartStrConsts, TACustomSource, TAGeometry, TAGraph, TAMath;
type
@ -939,8 +940,8 @@ end;
initialization
RegisterSeriesClass(TBubbleSeries, 'Bubble series');
RegisterSeriesClass(TBoxAndWhiskerSeries, 'Box-and-whiskers series');
RegisterSeriesClass(TOpenHighLowCloseSeries, 'Open-high-low-close series');
RegisterSeriesClass(TBubbleSeries, @rsBubbleSeries);
RegisterSeriesClass(TBoxAndWhiskerSeries, @rsBoxAndWhiskerSeries);
RegisterSeriesClass(TOpenHighLowCloseSeries, @rsOpenHighLowCloseSeries);
end.

View File

@ -146,7 +146,7 @@ implementation
uses
Math,
TACustomSource, TAGeometry, TAGraph;
TAChartStrConsts, TACustomSource, TAGeometry, TAGraph;
{ TPieSlice }
@ -673,7 +673,7 @@ end;
initialization
RegisterSeriesClass(TPolarSeries, 'Polar series');
RegisterSeriesClass(TPolarSeries, @rsPolarSeries);
end.

View File

@ -344,7 +344,7 @@ implementation
uses
GraphMath, GraphType, IntfGraphics, LResources, Math, PropEdits, SysUtils,
TADrawerCanvas, TAGeometry, TAGraph, TAMath, TAStyles;
TAChartStrConsts, TADrawerCanvas, TAGeometry, TAGraph, TAMath, TAStyles;
{ TLineSeries }
@ -1496,14 +1496,14 @@ begin
end;
initialization
RegisterSeriesClass(TLineSeries, 'Line series');
RegisterSeriesClass(TAreaSeries, 'Area series');
RegisterSeriesClass(TBarSeries, 'Bar series');
RegisterSeriesClass(TPieSeries, 'Pie series');
RegisterSeriesClass(TUserDrawnSeries, 'User-drawn series');
RegisterSeriesClass(TConstantLine, 'Constant line');
RegisterSeriesClass(TManhattanSeries, 'Manhattan plot series');
{$WARNINGS OFF}RegisterSeriesClass(TLine, '');{$WARNINGS ON}
RegisterSeriesClass(TLineSeries, @rsLineSeries);
RegisterSeriesClass(TAreaSeries, @rsAreaSeries);
RegisterSeriesClass(TBarSeries, @rsBarSeries);
RegisterSeriesClass(TPieSeries, @rsPieSeries);
RegisterSeriesClass(TUserDrawnSeries, @rsUserDrawnSeries);
RegisterSeriesClass(TConstantLine, @rsConstantLine);
RegisterSeriesClass(TManhattanSeries, @rsManhattanPlotSeries);
// {$WARNINGS OFF}RegisterSeriesClass(TLine, nil);{$WARNINGS ON}
SkipObsoleteProperties;
end.

View File

@ -573,17 +573,16 @@ type
end;
procedure Register;
procedure RegisterChartToolClass(
AToolClass: TChartToolClass; const ACaption: String);
procedure RegisterChartToolClass(AToolClass: TChartToolClass; ACaption: PStr);
var
ToolsClassRegistry: TStringList;
ToolsClassRegistry: TClassRegistry;
implementation
uses
GraphMath, InterfaceBase, LCLType, LCLIntf, Math, SysUtils,
TACustomSeries, TAEnumerators, TAGeometry, TAMath;
TAChartStrConsts, TACustomSeries, TAEnumerators, TAGeometry, TAMath;
function InitBuiltinTools(AChart: TChart): TBasicChartToolset;
var
@ -607,15 +606,15 @@ var
i: Integer;
begin
for i := 0 to ToolsClassRegistry.Count - 1 do
RegisterNoIcon([TChartToolClass(ToolsClassRegistry.Objects[i])]);
RegisterNoIcon([TChartToolClass(ToolsClassRegistry.GetClass(i))]);
RegisterComponents(CHART_COMPONENT_IDE_PAGE, [TChartToolset]);
end;
procedure RegisterChartToolClass(
AToolClass: TChartToolClass; const ACaption: String);
procedure RegisterChartToolClass(AToolClass: TChartToolClass; ACaption: PStr);
begin
RegisterClass(AToolClass);
ToolsClassRegistry.AddObject(ACaption, TObject(AToolClass));
if ToolsClassRegistry.IndexOfClass(AToolClass) < 0 then
ToolsClassRegistry.Add(TClassRegistryItem.Create(AToolClass, ACaption));
end;
{ TDataPointTool.TPointRef }
@ -1962,20 +1961,20 @@ end;
initialization
ToolsClassRegistry := TStringList.Create;
ToolsClassRegistry := TClassRegistry.Create;
OnInitBuiltinTools := @InitBuiltinTools;
RegisterChartToolClass(TZoomDragTool, 'Zoom by drag');
RegisterChartToolClass(TZoomClickTool, 'Zoom by click');
RegisterChartToolClass(TZoomMouseWheelTool, 'Zoom by mouse wheel');
RegisterChartToolClass(TPanDragTool, 'Panning by drag');
RegisterChartToolClass(TPanClickTool, 'Panning by click');
RegisterChartToolClass(TPanMouseWheelTool, 'Panning by mouse wheel');
RegisterChartToolClass(TReticuleTool, 'Reticule');
RegisterChartToolClass(TDataPointClickTool, 'Data point click');
RegisterChartToolClass(TDataPointDragTool, 'Data point drag');
RegisterChartToolClass(TDataPointHintTool, 'Data point hint');
RegisterChartToolClass(TDataPointCrosshairTool, 'Data point crosshair');
RegisterChartToolClass(TUserDefinedTool, 'User-defined');
RegisterChartToolClass(TZoomDragTool, @rsZoomByDrag);
RegisterChartToolClass(TZoomClickTool, @rsZoomByClick);
RegisterChartToolClass(TZoomMouseWheelTool, @rsZoomByMouseWheel);
RegisterChartToolClass(TPanDragTool, @rsPanningByDrag);
RegisterChartToolClass(TPanClickTool, @rsPanningbyClick);
RegisterChartToolClass(TPanMouseWheelTool, @rsPanningByMouseWheel);
// RegisterChartToolClass(TReticuleTool, @rsReticule);
RegisterChartToolClass(TDataPointClickTool, @rsDataPointClick);
RegisterChartToolClass(TDataPointDragTool, @rsDataPointDrag);
RegisterChartToolClass(TDataPointHintTool, @rsDataPointHint);
RegisterChartToolClass(TDataPointCrosshairTool, @rsDataPointCrosshair);
RegisterChartToolClass(TUserDefinedTool, @rsUserDefined);
finalization

View File

@ -238,7 +238,7 @@ type
end;
var
AxisTransformsClassRegistry: TStringList;
AxisTransformsClassRegistry: TClassRegistry;
procedure Register;
var
@ -246,7 +246,7 @@ var
begin
with AxisTransformsClassRegistry do
for i := 0 to Count - 1 do
RegisterNoIcon([TAxisTransformClass(Objects[i])]);
RegisterNoIcon([TAxisTransformClass(GetClass(i))]);
RegisterComponents(CHART_COMPONENT_IDE_PAGE, [TChartAxisTransformations]);
RegisterPropertyEditor(
TypeInfo(TAxisTransformList), TChartAxisTransformations,
@ -256,10 +256,11 @@ begin
end;
procedure RegisterAxisTransformClass(
AAxisTransformClass: TAxisTransformClass; const ACaption: String);
AAxisTransformClass: TAxisTransformClass; const ACaption: PStr);
begin
RegisterClass(AAxisTransformClass);
AxisTransformsClassRegistry.AddObject(ACaption, TObject(AAxisTransformClass));
if AxisTransformsClassRegistry.IndexOfClass(AAxisTransformClass) < 0 then
AxisTransformsClassRegistry.Add(TClassRegistryItem.Create(AAxisTransformClass, ACaption));
end;
{ TAxisTransformList }
@ -321,7 +322,7 @@ var
i: Integer;
begin
for i := 0 to AxisTransformsClassRegistry.Count - 1 do
AddSubcomponentClass(AxisTransformsClassRegistry[i], i);
AddSubcomponentClass(AxisTransformsClassRegistry.GetCaption(i), i);
end;
function TAxisTransformsEditorForm.GetChildrenList: TFPList;
@ -333,7 +334,7 @@ function TAxisTransformsEditorForm.MakeSubcomponent(
AOwner: TComponent; ATag: Integer): TComponent;
begin
with AxisTransformsClassRegistry do
Result := TAxisTransformClass(Objects[ATag]).Create(AOwner);
Result := TAxisTransformClass(GetClass(ATag)).Create(AOwner);
end;
{ TAxisTransform }
@ -788,13 +789,13 @@ end;
initialization
AxisTransformsClassRegistry := TStringList.Create;
RegisterAxisTransformClass(TAutoScaleAxisTransform, 'Auto scale');
AxisTransformsClassRegistry := TClassRegistry.Create;
RegisterAxisTransformClass(TAutoScaleAxisTransform, @rsAutoScale);
RegisterAxisTransformClass(
TCumulNormDistrAxisTransform, 'Cumulative normal distribution');
RegisterAxisTransformClass(TLinearAxisTransform, 'Linear');
RegisterAxisTransformClass(TLogarithmAxisTransform, 'Logarithmic');
RegisterAxisTransformClass(TUserDefinedAxisTransform, 'User defined');
TCumulNormDistrAxisTransform, @rsCumulativeNormalDistribution);
RegisterAxisTransformClass(TLinearAxisTransform, @rsLinear);
RegisterAxisTransformClass(TLogarithmAxisTransform, @rsLogarithmic);
RegisterAxisTransformClass(TUserDefinedAxisTransform, @rsUserDefined);
finalization