lazarus/components/tachart/demo/axisclicktool/main.pas
2024-02-17 15:59:27 +01:00

101 lines
2.8 KiB
ObjectPascal

unit main;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
TAGraph, TATools, TAChartAxis, TASeries, TASources, TATransformations, Types;
type
{ TForm1 }
TForm1 = class(TForm)
Bevel1: TBevel;
Chart: TChart;
cbShowGrid_LeftAxis2: TCheckBox;
cbShowGrid_LeftAxis1: TCheckBox;
cbShowGrid_RightAxis: TCheckBox;
cbShowGrid_BottomAxis: TCheckBox;
RedSeries: TLineSeries;
BlueSeries: TLineSeries;
RedAxisTransformations: TChartAxisTransformations;
RedAxisTransformationsAutoScaleAxisTransform: TAutoScaleAxisTransform;
BlueAxisTransformations: TChartAxisTransformations;
BlueAxisTransformationsAutoScaleAxisTransform: TAutoScaleAxisTransform;
ChartToolset: TChartToolset;
ChartToolsetAxisClickTool1: TAxisClickTool;
ChartToolsetUserDefinedTool1: TUserDefinedTool;
Label1: TLabel;
Label2: TLabel;
lblClickedAxis: TLabel;
lblClickedAxisPart: TLabel;
BottomPanel: TPanel;
RedChartSource: TRandomChartSource;
BlueChartSource: TRandomChartSource;
procedure ChartToolsetAxisClickTool1Click(ASender: TChartTool;
Axis: TChartAxis; AHitInfo: TChartAxisHitTests);
procedure ChartToolsetUserDefinedTool1AfterMouseDown(ATool: TChartTool;
APoint: TPoint);
procedure cbShowGrid_LeftAxis2Change(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.ChartToolsetAxisClickTool1Click(ASender: TChartTool;
Axis: TChartAxis; AHitInfo: TChartAxisHitTests);
var
s: String;
begin
s := '';
if ahtGrid in AHitInfo then s := s + ', Axis grid';
if ahtTitle in AHitInfo then s := s + ', Axis title';
if ahtLine in AHitInfo then s := s + ', Axis line';
if ahtLabels in AHitInfo then s := s + ', Axis labels';
if ahtAxisStart in AHitInfo then s := s + ', begin of axis';
if ahtAxisCenter in AHitInfo then s := s + ', center of axis';
if ahtAxisEnd in AHitInfo then s := s + ', end of axis';
if s <> '' then
begin
Delete(s, 1, 2);
lblClickedAxis.Caption := Axis.Title.Caption;
lblClickedAxisPart.Caption := s;
end;
end;
procedure TForm1.ChartToolsetUserDefinedTool1AfterMouseDown(ATool: TChartTool;
APoint: TPoint);
begin
lblClickedAxis.Caption := '(none)';
lblClickedAxisPart.Caption := '(none)';
ATool.Handled;
end;
procedure TForm1.cbShowGrid_LeftAxis2Change(Sender: TObject);
begin
if Sender = cbShowGrid_LeftAxis2 then
Chart.LeftAxis.Grid.Visible := TCheckbox(Sender).Checked
else if Sender = cbShowGrid_LeftAxis1 then
Chart.AxisList[3].Grid.Visible := TCheckbox(Sender).Checked
else if Sender = cbShowGrid_RightAxis then
Chart.AxisList[2].Grid.Visible := TCheckbox(Sender).Checked
else if Sender = cbShowGrid_BottomAxis then
Chart.BottomAxis.Grid.Visible := TCheckbox(Sender).Checked;
end;
end.