mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-09 04:36:42 +02:00
TAChart: Add TChartAxis.Intervals property
git-svn-id: trunk@31854 -
This commit is contained in:
parent
6fc1a2fbed
commit
3f6db4ab9f
@ -562,6 +562,7 @@ begin
|
|||||||
d.FUseY := IsVertical;
|
d.FUseY := IsVertical;
|
||||||
d.FAxisToGraph := @GetTransform.AxisToGraph;
|
d.FAxisToGraph := @GetTransform.AxisToGraph;
|
||||||
d.FGraphToImage := @FHelper.GraphToImage;
|
d.FGraphToImage := @FHelper.GraphToImage;
|
||||||
|
d.FAxisIntervals := Intervals;
|
||||||
SetLength(FMarkValues, 0);
|
SetLength(FMarkValues, 0);
|
||||||
vis := TChartAxisList(Collection).OnVisitSources;
|
vis := TChartAxisList(Collection).OnVisitSources;
|
||||||
if Marks.AtDataOnly and Assigned(vis) then
|
if Marks.AtDataOnly and Assigned(vis) then
|
||||||
|
@ -22,7 +22,8 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, Graphics,
|
Classes, Graphics,
|
||||||
TAChartUtils, TACustomSource, TADrawUtils, TAStyles, TATypes;
|
TAChartUtils, TACustomSource, TADrawUtils, TAIntervalSources, TAStyles,
|
||||||
|
TATypes;
|
||||||
|
|
||||||
const
|
const
|
||||||
DEF_TITLE_DISTANCE = 4;
|
DEF_TITLE_DISTANCE = 4;
|
||||||
@ -85,15 +86,18 @@ type
|
|||||||
|
|
||||||
TCustomChartAxisMarks = class(TBasicChartAxisMarks)
|
TCustomChartAxisMarks = class(TBasicChartAxisMarks)
|
||||||
strict private
|
strict private
|
||||||
|
FDefaultSource: TIntervalChartSource;
|
||||||
FStripes: TChartStyles;
|
FStripes: TChartStyles;
|
||||||
procedure SetStripes(AValue: TChartStyles);
|
procedure SetStripes(AValue: TChartStyles);
|
||||||
strict protected
|
strict protected
|
||||||
function IsFormatStored: Boolean;
|
function IsFormatStored: Boolean;
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TCustomChart);
|
constructor Create(AOwner: TCustomChart);
|
||||||
|
destructor Destroy; override;
|
||||||
function Measure(
|
function Measure(
|
||||||
ADrawer: IChartDrawer; AIsVertical: Boolean; ATickLength: Integer;
|
ADrawer: IChartDrawer; AIsVertical: Boolean; ATickLength: Integer;
|
||||||
AValues: TChartValueTextArray): Integer;
|
AValues: TChartValueTextArray): Integer;
|
||||||
|
property DefaultSource: TIntervalChartSource read FDefaultSource;
|
||||||
property Stripes: TChartStyles read FStripes write SetStripes;
|
property Stripes: TChartStyles read FStripes write SetStripes;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -114,7 +118,6 @@ type
|
|||||||
TChartAxisMarks = class(TCustomChartAxisMarks)
|
TChartAxisMarks = class(TCustomChartAxisMarks)
|
||||||
strict private
|
strict private
|
||||||
FAtDataOnly: Boolean;
|
FAtDataOnly: Boolean;
|
||||||
FDefaultSource: TCustomChartSource;
|
|
||||||
FListener: TListener;
|
FListener: TListener;
|
||||||
FRange: TChartRange;
|
FRange: TChartRange;
|
||||||
FSource: TCustomChartSource;
|
FSource: TCustomChartSource;
|
||||||
@ -154,8 +157,10 @@ type
|
|||||||
FTickColor: TColor;
|
FTickColor: TColor;
|
||||||
FTickLength: Integer;
|
FTickLength: Integer;
|
||||||
FVisible: Boolean;
|
FVisible: Boolean;
|
||||||
|
function GetIntervals: TChartAxisIntervalParams;
|
||||||
procedure SetArrow(AValue: TChartArrow);
|
procedure SetArrow(AValue: TChartArrow);
|
||||||
procedure SetGrid(AValue: TChartAxisGridPen);
|
procedure SetGrid(AValue: TChartAxisGridPen);
|
||||||
|
procedure SetIntervals(AValue: TChartAxisIntervalParams);
|
||||||
procedure SetTickColor(AValue: TColor);
|
procedure SetTickColor(AValue: TColor);
|
||||||
procedure SetTickLength(AValue: Integer);
|
procedure SetTickLength(AValue: Integer);
|
||||||
procedure SetVisible(AValue: Boolean);
|
procedure SetVisible(AValue: Boolean);
|
||||||
@ -174,11 +179,13 @@ type
|
|||||||
ADrawer: IChartDrawer; var AIndex: Cardinal): Boolean;
|
ADrawer: IChartDrawer; var AIndex: Cardinal): Boolean;
|
||||||
|
|
||||||
property Alignment: TChartAxisAlignment
|
property Alignment: TChartAxisAlignment
|
||||||
read GetAlignment write SetAlignment;
|
read GetAlignment write SetAlignment;
|
||||||
property Arrow: TChartArrow read FArrow write SetArrow;
|
property Arrow: TChartArrow read FArrow write SetArrow;
|
||||||
property Marks: TCustomChartAxisMarks read FMarks write SetMarks;
|
property Marks: TCustomChartAxisMarks read FMarks write SetMarks;
|
||||||
published
|
published
|
||||||
property Grid: TChartAxisGridPen read FGrid write SetGrid;
|
property Grid: TChartAxisGridPen read FGrid write SetGrid;
|
||||||
|
property Intervals: TChartAxisIntervalParams
|
||||||
|
read GetIntervals write SetIntervals;
|
||||||
property TickColor: TColor read FTickColor write SetTickColor default clBlack;
|
property TickColor: TColor read FTickColor write SetTickColor default clBlack;
|
||||||
property TickLength: Integer read FTickLength write SetTickLength;
|
property TickLength: Integer read FTickLength write SetTickLength;
|
||||||
property Visible: Boolean read FVisible write SetVisible default true;
|
property Visible: Boolean read FVisible write SetVisible default true;
|
||||||
@ -258,7 +265,7 @@ implementation
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Math, SysUtils,
|
Math, SysUtils,
|
||||||
TAGeometry, TAIntervalSources;
|
TAGeometry;
|
||||||
|
|
||||||
{ TChartMinorAxisMarks }
|
{ TChartMinorAxisMarks }
|
||||||
|
|
||||||
@ -511,10 +518,17 @@ end;
|
|||||||
constructor TCustomChartAxisMarks.Create(AOwner: TCustomChart);
|
constructor TCustomChartAxisMarks.Create(AOwner: TCustomChart);
|
||||||
begin
|
begin
|
||||||
inherited Create(AOwner);
|
inherited Create(AOwner);
|
||||||
|
FDefaultSource := TIntervalChartSource.Create(AOwner);
|
||||||
FDistance := 1;
|
FDistance := 1;
|
||||||
FLabelBrush.Style := bsClear;
|
FLabelBrush.Style := bsClear;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
destructor TCustomChartAxisMarks.Destroy;
|
||||||
|
begin
|
||||||
|
FreeAndNil(FDefaultSource);
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCustomChartAxisMarks.IsFormatStored: Boolean;
|
function TCustomChartAxisMarks.IsFormatStored: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := FStyle <> smsValue;
|
Result := FStyle <> smsValue;
|
||||||
@ -550,7 +564,6 @@ end;
|
|||||||
constructor TChartAxisMarks.Create(AOwner: TCustomChart);
|
constructor TChartAxisMarks.Create(AOwner: TCustomChart);
|
||||||
begin
|
begin
|
||||||
inherited Create(AOwner);
|
inherited Create(AOwner);
|
||||||
FDefaultSource := TIntervalChartSource.Create(AOwner);
|
|
||||||
FListener := TListener.Create(@FSource, @StyleChanged);
|
FListener := TListener.Create(@FSource, @StyleChanged);
|
||||||
FRange := TChartRange.Create(AOwner);
|
FRange := TChartRange.Create(AOwner);
|
||||||
FStyle := smsValue;
|
FStyle := smsValue;
|
||||||
@ -561,7 +574,6 @@ destructor TChartAxisMarks.Destroy;
|
|||||||
begin
|
begin
|
||||||
FreeAndNil(FRange);
|
FreeAndNil(FRange);
|
||||||
FreeAndNil(FListener);
|
FreeAndNil(FListener);
|
||||||
FreeAndNil(FDefaultSource);
|
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -594,7 +606,7 @@ function TChartAxisMarks.SourceDef: TCustomChartSource;
|
|||||||
begin
|
begin
|
||||||
Result := FSource;
|
Result := FSource;
|
||||||
if Result = nil then
|
if Result = nil then
|
||||||
Result := FDefaultSource;
|
Result := DefaultSource;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TChartBasicAxis }
|
{ TChartBasicAxis }
|
||||||
@ -633,6 +645,11 @@ begin
|
|||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TChartBasicAxis.GetIntervals: TChartAxisIntervalParams;
|
||||||
|
begin
|
||||||
|
Result := Marks.DefaultSource.Params;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TChartBasicAxis.SetArrow(AValue: TChartArrow);
|
procedure TChartBasicAxis.SetArrow(AValue: TChartArrow);
|
||||||
begin
|
begin
|
||||||
FArrow.Assign(AValue);
|
FArrow.Assign(AValue);
|
||||||
@ -645,6 +662,11 @@ begin
|
|||||||
StyleChanged(Self);
|
StyleChanged(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TChartBasicAxis.SetIntervals(AValue: TChartAxisIntervalParams);
|
||||||
|
begin
|
||||||
|
Marks.DefaultSource.Params := AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TChartBasicAxis.SetMarks(AValue: TCustomChartAxisMarks);
|
procedure TChartBasicAxis.SetMarks(AValue: TCustomChartAxisMarks);
|
||||||
begin
|
begin
|
||||||
FMarks.Assign(AValue);
|
FMarks.Assign(AValue);
|
||||||
|
@ -94,6 +94,7 @@ type
|
|||||||
TGraphToImageFunc = function (AX: Double): Integer of object;
|
TGraphToImageFunc = function (AX: Double): Integer of object;
|
||||||
|
|
||||||
TValuesInRangeParams = record
|
TValuesInRangeParams = record
|
||||||
|
FAxisIntervals: TChartAxisIntervalParams;
|
||||||
FFormat: String;
|
FFormat: String;
|
||||||
FMin, FMax: Double;
|
FMin, FMax: Double;
|
||||||
FUseY: Boolean;
|
FUseY: Boolean;
|
||||||
|
Loading…
Reference in New Issue
Block a user