mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-09 09:52:53 +02:00
136 lines
3.5 KiB
ObjectPascal
136 lines
3.5 KiB
ObjectPascal
unit main;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
|
|
Spin, TAGraph, TATextElements, Types, TAChartUtils, TASeries;
|
|
|
|
type
|
|
|
|
{ TMainForm }
|
|
|
|
TMainForm = class(TForm)
|
|
Bevel1: TBevel;
|
|
Chart1: TChart;
|
|
cbFullWidth: TCheckBox;
|
|
cbShowAxisMarksAndTitle: TCheckBox;
|
|
cbShape: TComboBox;
|
|
cbFrame: TCheckBox;
|
|
clbFrameColor: TColorButton;
|
|
gbTitleMargins: TGroupBox;
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
lblTitleText: TLabel;
|
|
lblShape: TLabel;
|
|
mmoTitleText: TMemo;
|
|
rgAlignment: TRadioGroup;
|
|
seLeftMargin: TSpinEdit;
|
|
seRightMargin: TSpinEdit;
|
|
procedure cbFrameChange(Sender: TObject);
|
|
procedure Chart1ChartTitleGetShape(ASender: TChartTextElement;
|
|
const ABoundingBox: TRect; var APolygon: TPointArray);
|
|
procedure cbFullWidthChange(Sender: TObject);
|
|
procedure cbShowAxisMarksAndTitleChange(Sender: TObject);
|
|
procedure cbShapeChange(Sender: TObject);
|
|
procedure clbFrameColorColorChanged(Sender: TObject);
|
|
procedure FormActivate(Sender: TObject);
|
|
procedure mmoTitleTextChange(Sender: TObject);
|
|
procedure rgAlignmentClick(Sender: TObject);
|
|
procedure seLeftMarginChange(Sender: TObject);
|
|
procedure seRightMarginChange(Sender: TObject);
|
|
private
|
|
|
|
public
|
|
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TMainForm }
|
|
|
|
procedure TMainForm.mmoTitleTextChange(Sender: TObject);
|
|
begin
|
|
Chart1.Title.Text.Text := mmoTitleText.Lines.Text;
|
|
end;
|
|
|
|
procedure TMainForm.rgAlignmentClick(Sender: TObject);
|
|
begin
|
|
case rgAlignment.ItemIndex of
|
|
0: Chart1.Title.Alignment := taLeftJustify;
|
|
1: Chart1.Title.Alignment := taCenter;
|
|
2: Chart1.Title.Alignment := taRightJustify;
|
|
end;
|
|
end;
|
|
|
|
procedure TMainForm.seLeftMarginChange(Sender: TObject);
|
|
begin
|
|
Chart1.Title.Margins.Left := seLeftMargin.Value;
|
|
end;
|
|
|
|
procedure TMainForm.seRightMarginChange(Sender: TObject);
|
|
begin
|
|
Chart1.Title.Margins.Right := seRightMargin.Value;
|
|
end;
|
|
|
|
procedure TMainForm.cbFullWidthChange(Sender: TObject);
|
|
begin
|
|
Chart1.Title.FullWidth := cbFullWidth.Checked;
|
|
end;
|
|
|
|
procedure TMainForm.Chart1ChartTitleGetShape(ASender: TChartTextElement;
|
|
const ABoundingBox: TRect; var APolygon: TPointArray);
|
|
var
|
|
delta: Integer;
|
|
begin
|
|
delta := ABoundingBox.Height div 2;
|
|
SetLength(APolygon, 4);
|
|
APolygon[0] := Point(ABoundingBox.Left + delta, ABoundingBox.Top);
|
|
APolygon[1] := Point(ABoundingBox.Right, ABoundingBox.Top);
|
|
APolygon[2] := Point(ABoundingBox.Right - delta, ABoundingBox.Bottom);
|
|
APolygon[3] := Point(ABoundingBox.Left, ABoundingBox.Bottom);
|
|
end;
|
|
|
|
procedure TMainForm.cbFrameChange(Sender: TObject);
|
|
begin
|
|
Chart1.Title.Frame.Visible := cbFrame.Checked;
|
|
end;
|
|
|
|
procedure TMainForm.cbShowAxisMarksAndTitleChange(Sender: TObject);
|
|
begin
|
|
Chart1.BottomAxis.Marks.Visible := cbShowAxisMarksAndTitle.Checked;
|
|
Chart1.BottomAxis.Title.Visible := cbShowAxisMarksAndTitle.Checked;
|
|
Chart1.LeftAxis.Marks.Visible := cbShowAxisMarksAndTitle.Checked;
|
|
Chart1.LeftAxis.Title.Visible := cbShowAxisMarksAndTitle.Checked;
|
|
end;
|
|
|
|
procedure TMainForm.cbShapeChange(Sender: TObject);
|
|
begin
|
|
Chart1.Title.Shape := TChartLabelShape(cbShape.ItemIndex);
|
|
if Chart1.Title.Shape = clsUserDefined then
|
|
Chart1.Title.OnGetShape := @Chart1ChartTitleGetShape
|
|
else
|
|
Chart1.Title.OnGetShape := nil;
|
|
end;
|
|
|
|
procedure TMainForm.clbFrameColorColorChanged(Sender: TObject);
|
|
begin
|
|
Chart1.Title.Frame.Color := clbFrameColor.ButtonColor;
|
|
end;
|
|
|
|
procedure TMainForm.FormActivate(Sender: TObject);
|
|
begin
|
|
Constraints.MinWidth := Width;
|
|
Constraints.MinHeight := Height;
|
|
end;
|
|
|
|
end.
|
|
|