lazarus/components/tachart/demo/charteditor/cearrowframe.pas

82 lines
1.8 KiB
ObjectPascal

unit ceArrowFrame;
{$mode ObjFPC}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, StdCtrls, Spin,
TATypes;
type
{ TChartArrowFrame }
TChartArrowFrame = class(TFrame)
cbArrowVisible: TCheckBox;
lblArrowBaseLength: TLabel;
lblArrowLength: TLabel;
lblArrowWidth: TLabel;
seArrowBaseLength: TSpinEdit;
seArrowLength: TSpinEdit;
seArrowWidth: TSpinEdit;
procedure cbArrowVisibleChange(Sender: TObject);
procedure seArrowBaseLengthChange(Sender: TObject);
procedure seArrowLengthChange(Sender: TObject);
procedure seArrowWidthChange(Sender: TObject);
private
FArrow: TChartArrow;
procedure DoChange;
public
procedure Prepare(Arrow: TChartArrow);
end;
implementation
{$R *.lfm}
procedure TChartArrowFrame.cbArrowVisibleChange(Sender: TObject);
begin
FArrow.Visible := cbArrowVisible.Checked;
DoChange;
end;
procedure TChartArrowFrame.DoChange;
begin
lblArrowBaseLength.Enabled := cbArrowVisible.Checked;
seArrowBaseLength.Enabled := cbArrowVisible.Checked;
lblArrowLength.Enabled := cbArrowVisible.Checked;
seArrowLength.Enabled := cbArrowVisible.Checked;
lblArrowWidth.Enabled := cbArrowVisible.Checked;
seArrowWidth.Enabled := cbArrowVisible.Checked;
end;
procedure TChartArrowFrame.Prepare(Arrow: TChartArrow);
begin
FArrow := Arrow;
cbArrowVisible.Checked := Arrow.Visible;
seArrowBaseLength.Value := Arrow.BaseLength;
seArrowLength.Value := Arrow.Length;
seArrowWidth.Value := Arrow.Width;
DoChange;
end;
procedure TChartArrowFrame.seArrowBaseLengthChange(Sender: TObject);
begin
FArrow.BaseLength := seArrowBaseLength.Value;
end;
procedure TChartArrowFrame.seArrowLengthChange(Sender: TObject);
begin
FArrow.Length := seArrowLength.Value;
end;
procedure TChartArrowFrame.seArrowWidthChange(Sender: TObject);
begin
FArrow.Width := seArrowWidth.Value;
end;
end.