📄 iscalecomponent.pas
字号:
{*******************************************************}
{ }
{ TiScaleComponent }
{ }
{ Copyright (c) 1997,2003 Iocomp Software }
{ }
{*******************************************************}
{$I iInclude.inc}
{$ifdef iVCL}unit iScaleComponent;{$endif}
{$ifdef iCLX}unit QiScaleComponent;{$endif}
interface
uses
{$I iIncludeUses.inc}
{$IFDEF iVCL} iTypes, iGPFunctions, iMath, iScaleObject, iPositionComponent;{$ENDIF}
{$IFDEF iCLX}QiTypes, QiGPFunctions, QiMath, QiScaleObject, QiPositionComponent;{$ENDIF}
type
TiScaleComponent = class(TiPositionComponent)
private
FScaleObject : TiScaleObject;
FAutoScaleEnabled : Boolean;
FAutoScaleDesiredTicks : Integer;
FAutoScaleMaxTicks : Integer;
FAutoScaleStyle : TiAutoScaleStyle;
procedure SetShowTickLabels (const Value: Boolean);
procedure SetShowTicksMajor (const Value: Boolean);
procedure SetShowTicksMinor (const Value: Boolean);
procedure SetTickLabelFont (const Value: TFont);
procedure SetTickLabelMargin (const Value: Integer);
procedure SetTickLabelPrecision (const Value: Integer);
procedure SetTickMajorColor (const Value: TColor);
procedure SetTickMajorCount (const Value: Integer);
procedure SetTickMajorLength (const Value: Integer);
procedure SetTickMargin (const Value: Integer);
procedure SetTickMinorAlignment (const Value: TiTickMinorAlignment);
procedure SetTickMinorColor (const Value: TColor);
procedure SetTickMinorCount (const Value: Integer);
procedure SetTickMinorLength (const Value: Integer);
procedure SetTickMajorStyle (const Value: TiBevelStyle);
procedure SetTickMinorStyle (const Value: TiBevelStyle);
procedure SetShowTicksMajorFirstLast(const Value: Boolean);
procedure SetPrecisionStyle (const Value: TiPrecisionStyle);
procedure SetAutoScaleDesiredTicks (const Value: Integer);
procedure SetAutoScaleEnabled (const Value: Boolean);
procedure SetAutoScaleMaxTicks (const Value: Integer);
procedure SetAutoScaleStyle (const Value: TiAutoScaleStyle);
function GetShowTickLabels : Boolean;
function GetShowTicksMajor : Boolean;
function GetShowTicksMinor : Boolean;
function GetTickLabelFont : TFont;
function GetTickLabelMargin : Integer;
function GetTickLabelPrecision : Integer;
function GetTickMajorColor : TColor;
function GetTickMajorCount : Integer;
function GetTickMajorLength : Integer;
function GetTickMargin : Integer;
function GetTickMinorAlignment : TiTickMinorAlignment;
function GetTickMinorColor : TColor;
function GetTickMinorCount : Integer;
function GetTickMinorLength : Integer;
function GetTickMajorStyle : TiBevelStyle;
function GetTickMinorStyle : TiBevelStyle;
function GetShowTicksMajorFirstLast : Boolean;
function GetPrecisionStyle : TiPrecisionStyle;
function GetOnCustomizeTickLabel: TOnCustomizeTickLabel;
procedure SetOnCustomizeTickLabel(const Value: TOnCustomizeTickLabel);
protected
FAutoScaleMaxTick : Double;
FAutoScaleMinTick : Double;
procedure SetPositionMin(const Value : Double); override;
procedure SetPositionMax(const Value : Double); override;
procedure DoAutoScale (DesiredMin, DesiredMax: Double);
function GetDecimalPoints : Integer; virtual;
procedure ScaleChange(Sender : TObject);
property ScaleObject : TiScaleObject read FScaleObject;
property ShowTicksMajorFirstLast : Boolean read GetShowTicksMajorFirstLast write SetShowTicksMajorFirstLast default True;
property TickMajorStyle : TiBevelStyle read GetTickMajorStyle write SetTickMajorStyle default ibsNone;
property TickMinorStyle : TiBevelStyle read GetTickMinorStyle write SetTickMinorStyle default ibsNone;
property ShowTicksMajor : Boolean read GetShowTicksMajor write SetShowTicksMajor default True;
property ShowTicksMinor : Boolean read GetShowTicksMinor write SetShowTicksMinor default True;
property ShowTickLabels : Boolean read GetShowTickLabels write SetShowTickLabels default True;
property TickMajorCount : Integer read GetTickMajorCount write SetTickMajorCount default 5;
property TickMajorColor : TColor read GetTickMajorColor write SetTickMajorColor default clBlack;
property TickMajorLength : Integer read GetTickMajorLength write SetTickMajorLength default 7;
property TickMinorAlignment : TiTickMinorAlignment read GetTickMinorAlignment write SetTickMinorAlignment default itmnaInside;
property TickMinorCount : Integer read GetTickMinorCount write SetTickMinorCount default 4;
property TickMinorColor : TColor read GetTickMinorColor write SetTickMinorColor default clBlack;
property TickMinorLength : Integer read GetTickMinorLength write SetTickMinorLength default 3;
property TickMargin : Integer read GetTickMargin write SetTickMargin default 5;
property TickLabelMargin : Integer read GetTickLabelMargin write SetTickLabelMargin default 5;
property TickLabelFont : TFont read GetTickLabelFont write SetTickLabelFont;
property TickLabelPrecision : Integer read GetTickLabelPrecision write SetTickLabelPrecision default 0;
property PrecisionStyle : TiPrecisionStyle read GetPrecisionStyle write SetPrecisionStyle default ipsFixedDecimalPoints;
property AutoScaleEnabled : Boolean read FAutoScaleEnabled write SetAutoScaleEnabled default False;
property AutoScaleDesiredTicks : Integer read FAutoScaleDesiredTicks write SetAutoScaleDesiredTicks default 5;
property AutoScaleMaxTicks : Integer read FAutoScaleMaxTicks write SetAutoScaleMaxTicks default 6;
property AutoScaleStyle : TiAutoScaleStyle read FAutoScaleStyle write SetAutoScaleStyle default iassAutoMinMax;
property OnCustomizeTickLabel : TOnCustomizeTickLabel read GetOnCustomizeTickLabel write SetOnCustomizeTickLabel;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Loaded; override;
end;
implementation
//****************************************************************************************************************************************************
constructor TiScaleComponent.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FScaleObject := TiScaleObject.Create;
PrecisionStyle := ipsFixedDecimalPoints;
FScaleObject.OnChange := ScaleChange;
AutoScaleDesiredTicks := 5;
AutoScaleMaxTicks := 6;
ShowTicksMajor := True;
ShowTicksMinor := True;
ShowTickLabels := True;
end;
//****************************************************************************************************************************************************
destructor TiScaleComponent.Destroy;
begin
FScaleObject.Free;
inherited;
end;
//****************************************************************************************************************************************************
procedure TiScaleComponent.Loaded;
begin
inherited;
DoAutoScale(PositionMin, PositionMax);
end;
//****************************************************************************************************************************************************
function TiScaleComponent.GetShowTickLabels : Boolean; begin Result := FScaleObject.ShowTickLabels end;
function TiScaleComponent.GetShowTicksMajor : Boolean; begin Result := FScaleObject.ShowTicksMajor end;
function TiScaleComponent.GetShowTicksMinor : Boolean; begin Result := FScaleObject.ShowTicksMinor end;
function TiScaleComponent.GetShowTicksMajorFirstLast : Boolean; begin Result := FScaleObject.ShowTicksMajorFirstLast end;
function TiScaleComponent.GetTickLabelFont : TFont; begin Result := FScaleObject.TickLabelFont end;
function TiScaleComponent.GetTickLabelMargin : Integer; begin Result := FScaleObject.TickLabelMargin end;
function TiScaleComponent.GetTickLabelPrecision : Integer; begin Result := FScaleObject.TickLabelPrecision end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -