diff --git a/components/tachart/languages/tachartstrconsts.de.po b/components/tachart/languages/tachartstrconsts.de.po index 597d8116d1..e6f806a704 100644 --- a/components/tachart/languages/tachartstrconsts.de.po +++ b/components/tachart/languages/tachartstrconsts.de.po @@ -23,11 +23,11 @@ msgstr "Datenpunkt-Editor" #: tachartstrconsts.desdeleterow msgid "Delete row" -msgstr "" +msgstr "Zeile löschen" #: tachartstrconsts.desinsertrow msgid "Insert row" -msgstr "" +msgstr "Zeile einfügen" #: tachartstrconsts.destext msgid "Text" @@ -167,7 +167,6 @@ msgid "User-defined" msgstr "Benutzerdefiniert" #: tachartstrconsts.rsuserdefinedtool -#, fuzzy msgctxt "tachartstrconsts.rsuserdefinedtool" msgid "User-defined" msgstr "Benutzerdefiniert" @@ -203,4 +202,3 @@ msgstr "Fehler beim Umbenennen von Komponenten: %s" #: tachartstrconsts.tastoolseditortitle msgid "Edit tools" msgstr "Werkzeuge bearbeiten" - diff --git a/components/tachart/tachartutils.pas b/components/tachart/tachartutils.pas index 51d421adaf..630d30b07a 100644 --- a/components/tachart/tachartutils.pas +++ b/components/tachart/tachartutils.pas @@ -260,8 +260,10 @@ type TClassRegistryItem = class FClass: TClass; - FCaption: PStr; - constructor Create(AClass: TClass; ACaption: PStr); + FCaption: String; + FCaptionPtr: PStr; + constructor Create(AClass: TClass; const ACaption: String); + constructor CreateRes(AClass: TClass; ACaptionPtr: PStr); end; TClassRegistry = class(TFPList) @@ -989,12 +991,19 @@ end; { TClassRegistryItem } -constructor TClassRegistryItem.Create(AClass: TClass; ACaption: PStr); +constructor TClassRegistryItem.Create(AClass: TClass; const ACaption: String); begin FClass := AClass; FCaption := ACaption; end; +constructor TClassRegistryItem.CreateRes(AClass: TClass; ACaptionPtr: PStr); +begin + FClass := AClass; + FCaptionPtr := ACaptionPtr; + if FCaptionPtr <> nil then FCaption := ACaptionPtr^; +end; + { TClassRegistry } @@ -1015,10 +1024,12 @@ end; function TClassRegistry.GetCaption(AIndex: Integer): String; var - P: PStr; + item: TClassRegistryItem; begin - P := TClassRegistryItem(Items[AIndex]).FCaption; - if P = nil then Result := '' else Result := P^; + item := TClassRegistryItem(Items[AIndex]); + if item.FCaptionPtr <> nil then + Result := item.FCaptionPtr^ else + Result := item.FCaption; end; function TClassRegistry.GetClass(AIndex: Integer): TClass; diff --git a/components/tachart/tagraph.pas b/components/tachart/tagraph.pas index 8ceef90ecb..f09e05bf55 100644 --- a/components/tachart/tagraph.pas +++ b/components/tachart/tagraph.pas @@ -447,7 +447,8 @@ type end; procedure Register; -procedure RegisterSeriesClass(ASeriesClass: TSeriesClass; const ACaption: PStr); +procedure RegisterSeriesClass(ASeriesClass: TSeriesClass; const ACaption: String); overload; +procedure RegisterSeriesClass(ASeriesClass: TSeriesClass; ACaptionPtr: PStr); overload; var SeriesClassRegistry: TClassRegistry = nil; @@ -480,13 +481,18 @@ begin end; end; -procedure RegisterSeriesClass( - ASeriesClass: TSeriesClass; const ACaption: PStr); +procedure RegisterSeriesClass(ASeriesClass: TSeriesClass; const ACaption: String); begin if SeriesClassRegistry.IndexOfClass(ASeriesClass) < 0 then SeriesClassRegistry.Add(TClassRegistryItem.Create(ASeriesClass, ACaption)); end; +procedure RegisterSeriesClass(ASeriesClass: TSeriesClass; ACaptionPtr: PStr); +begin + if SeriesClassRegistry.IndexOfClass(ASeriesClass) < 0 then + SeriesClassRegistry.Add(TClassRegistryItem.CreateRes(ASeriesClass, ACaptionPtr)); +end; + procedure WriteComponentToStream(AStream: TStream; AComponent: TComponent); var writer: TWriter; diff --git a/components/tachart/tatools.pas b/components/tachart/tatools.pas index face881404..9a794010b1 100644 --- a/components/tachart/tatools.pas +++ b/components/tachart/tatools.pas @@ -573,10 +573,14 @@ type end; procedure Register; - procedure RegisterChartToolClass(AToolClass: TChartToolClass; ACaption: PStr); + + procedure RegisterChartToolClass(AToolClass: TChartToolClass; + const ACaption: String); overload; + procedure RegisterChartToolClass(AToolClass: TChartToolClass; + ACaptionPtr: PStr); overload; var - ToolsClassRegistry: TClassRegistry; + ToolsClassRegistry: TClassRegistry = nil; implementation @@ -610,13 +614,21 @@ begin RegisterComponents(CHART_COMPONENT_IDE_PAGE, [TChartToolset]); end; -procedure RegisterChartToolClass(AToolClass: TChartToolClass; ACaption: PStr); +procedure RegisterChartToolClass(AToolClass: TChartToolClass; + const ACaption: String); begin RegisterClass(AToolClass); if ToolsClassRegistry.IndexOfClass(AToolClass) < 0 then ToolsClassRegistry.Add(TClassRegistryItem.Create(AToolClass, ACaption)); end; +procedure RegisterChartToolClass(AToolClass: TChartToolClass; ACaptionPtr: PStr); +begin + RegisterClass(AToolClass); + if ToolsClassRegistry.IndexOfClass(AToolClass) < 0 then + ToolsClassRegistry.Add(TClassRegistryItem.CreateRes(AToolClass, ACaptionPtr)); +end; + { TDataPointTool.TPointRef } procedure TDataPointTool.TPointRef.Assign(ASource: TPointRef); diff --git a/components/tachart/tatransformations.pas b/components/tachart/tatransformations.pas index ebdf83e807..6e6e021c6f 100644 --- a/components/tachart/tatransformations.pas +++ b/components/tachart/tatransformations.pas @@ -194,6 +194,10 @@ type procedure Register; + procedure RegisterAxisTransformClass(AAxisTransformClass: TAxisTransformClass; + const ACaption: String); overload; + procedure RegisterAxisTransformClass(AAxisTransformClass: TAxisTransformClass; + ACaptionPtr: PStr); overload; implementation @@ -255,12 +259,22 @@ begin TChartAxisTransformations, TAxisTransformsComponentEditor); end; -procedure RegisterAxisTransformClass( - AAxisTransformClass: TAxisTransformClass; const ACaption: PStr); +procedure RegisterAxisTransformClass(AAxisTransformClass: TAxisTransformClass; + const ACaption: String); begin RegisterClass(AAxisTransformClass); - if AxisTransformsClassRegistry.IndexOfClass(AAxisTransformClass) < 0 then - AxisTransformsClassRegistry.Add(TClassRegistryItem.Create(AAxisTransformClass, ACaption)); + with AxisTransformsClassRegistry do + if IndexOfClass(AAxisTransformClass) < 0 then + Add(TClassRegistryItem.Create(AAxisTransformClass, ACaption)); +end; + +procedure RegisterAxisTransformClass(AAxisTransformClass: TAxisTransformClass; + ACaptionPtr: PStr); +begin + RegisterClass(AAxisTransformClass); + with AxisTransformsClassRegistry do + if IndexOfClass(AAxisTransformClass) < 0 then + Add(TClassRegistryItem.CreateRes(AAxisTransformClass, ACaptionPtr)); end; { TAxisTransformList }