File: main.pas

package info (click to toggle)
lazarus 4.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 275,760 kB
  • sloc: pascal: 2,341,904; xml: 509,420; makefile: 348,726; cpp: 93,608; sh: 3,387; java: 609; perl: 297; sql: 222; ansic: 137
file content (135 lines) | stat: -rw-r--r-- 3,635 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
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.