mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-22 21:46:03 +02:00
90 lines
1.9 KiB
ObjectPascal
90 lines
1.9 KiB
ObjectPascal
unit cePointerFrame;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, Forms, Controls, StdCtrls, ExtCtrls, Spin,
|
|
TATypes, TAChartCombos, TAGraph,
|
|
ceBrushFrame, cePenFrame;
|
|
|
|
type
|
|
|
|
{ TPointerFrame }
|
|
|
|
TPointerFrame = class(TFrame)
|
|
Bevel1: TBevel;
|
|
Bevel2: TBevel;
|
|
Bevel3: TBevel;
|
|
cbPointerStyle: TChartComboBox;
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
lblPointerSize: TLabel;
|
|
PointerPenFrame: TPenFrame;
|
|
PointerBrushFrame: TBrushFrame;
|
|
sePointerSize: TSpinEdit;
|
|
procedure cbPointerStyleChange(Sender: TObject);
|
|
procedure sePointerSizeChange(Sender: TObject);
|
|
private
|
|
FPointer: TSeriesPointer;
|
|
FOnChange: TNotifyEvent;
|
|
procedure DoChange;
|
|
protected
|
|
function GetChart: TChart;
|
|
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
procedure Prepare(APointer: TSeriesPointer);
|
|
property OnChange: TNotifyEvent read FOnChange write FOnChange;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
type
|
|
TSeriesPointerAccess = class(TSeriesPointer);
|
|
|
|
constructor TPointerFrame.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
cbPointerStyle.DropdownCount := DEFAULT_DROPDOWN_COUNT;
|
|
end;
|
|
|
|
procedure TPointerFrame.cbPointerStyleChange(Sender: TObject);
|
|
begin
|
|
FPointer.Style := cbPointerStyle.PointerStyle;
|
|
DoChange;
|
|
end;
|
|
|
|
procedure TPointerFrame.sePointerSizeChange(Sender: TObject);
|
|
begin
|
|
FPointer.HorizSize := sePointerSize.Value;
|
|
FPointer.VertSize := sePointerSize.Value;
|
|
DoChange;
|
|
end;
|
|
|
|
procedure TPointerFrame.DoChange;
|
|
begin
|
|
if Assigned(FOnChange) then FOnChange(FPointer);
|
|
end;
|
|
|
|
function TPointerFrame.GetChart: TChart;
|
|
begin
|
|
Result := TSeriesPointerAccess(FPointer).GetOwner as TChart;
|
|
end;
|
|
|
|
procedure TPointerFrame.Prepare(APointer: TSeriesPointer);
|
|
begin
|
|
FPointer := APointer;
|
|
cbPointerStyle.PointerStyle := APointer.Style;
|
|
sePointerSize.Value := APointer.HorizSize;
|
|
PointerBrushFrame.Prepare(APointer.Brush);
|
|
PointerPenFrame.Prepare(APointer.Pen);
|
|
end;
|
|
|
|
end.
|
|
|