⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iscalecomponent.pas

📁 iocopm3.04源码,一套很好的工控开发工具
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{*******************************************************}
{                                                       }
{       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 + -