lazarus/components/tachart/editors/taseriespropeditors.pas
maxim 213dc57b27 Merged revision(s) 54953-54955 #fa6f0296b6-#fa6f0296b6, 54981 #bf3e483768, 55015 #61beca02f9, 55038-55039 #5daa890980-#5daa890980 from trunk:
IdeIntf: OI: always write values to objects if explicitely wanted.
........
IdeIntf: propedits: always write property values to objects. The property setter method has to decide about the need of update, not the propedit code.
........
IdeIntf: propedits: fix highlighting default (=not stored) properties.
........
ideintf: fix regression in image scaling code.
........
IDEIntf: Restore the backwards compatible event TPropHookModified. Add a new event TPropHookModifiedWithName.
........
ExternHelp: fix uses clause after r55035 #5d03c243b5
........
IdeIntf: TIDEImages: switch parameters for CreateImage, LoadImage and GetImageIndex methods.
........

git-svn-id: branches/fixes_1_8@55049 -
2017-05-22 22:52:38 +00:00

77 lines
1.7 KiB
ObjectPascal

unit TASeriesPropEditors;
{$H+}
interface
procedure Register;
implementation
uses
Classes, Math, PropEdits, SysUtils, TACustomSeries, TAGraph;
type
TAxisIndexPropertyEditor = class(TOrdinalPropertyEditor)
public
function GetAttributes: TPropertyAttributes; override;
function OrdValueToVisualValue(AOrdValue: Longint): String; override;
procedure GetValues(AProc: TGetStrProc); override;
procedure SetValue(const ANewValue: String); override;
end;
procedure Register;
begin
RegisterPropertyEditor(
TypeInfo(TChartAxisIndex), TCustomChartSeries, '', TAxisIndexPropertyEditor);
end;
{ TAxisIndexPropertyEditor }
function TAxisIndexPropertyEditor.GetAttributes: TPropertyAttributes;
begin
Result := [paMultiSelect, paValueList, paRevertable];
end;
procedure TAxisIndexPropertyEditor.GetValues(AProc: TGetStrProc);
var
s: TCustomChartSeries;
ch: TChart;
i: Integer;
begin
s := GetComponent(0) as TCustomChartSeries;
ch := s.ParentChart;
AProc('-1 None');
for i := 0 to ch.AxisList.Count - 1 do
AProc(IntToStr(i) + ' ' + ch.AxisList[i].DisplayName);
end;
function TAxisIndexPropertyEditor.OrdValueToVisualValue(
AOrdValue: Longint): String;
var
s: TCustomChartSeries;
ch: TChart;
begin
s := GetComponent(0) as TCustomChartSeries;
ch := s.ParentChart;
Result := IntToStr(AOrdValue) + ' ';
if InRange(AOrdValue, 0, ch.AxisList.Count - 1) then
Result += ch.AxisList[AOrdValue].DisplayName
else
Result += 'None';
end;
procedure TAxisIndexPropertyEditor.SetValue(const ANewValue: String);
var
v: Integer;
code: Word;
begin
Val(ANewValue, v, code);
if code > 0 then
Val(Copy(ANewValue, 1, code - 1), v, code);
SetOrdValue(Max(v, Low(TChartAxisIndex)));
end;
end.