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

📄 fledit.~pas

📁 Numeric Control for delphi 7
💻 ~PAS
字号:
unit FlEdit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,spin;

type
  TCustomFloatEdit = class(TCustomEdit)
  private
    { Private-Deklarationen }
    FDigits : Byte;
    FMin,FMax    : Extended;
    FDec         : Char;
    FErrorText     : string;
    FOldVal      : Extended;
    FAlignment   : TAlignment;
    FOnEnterPress: TKeyPressEvent;
    FTempValue   : Extended;
    function GetAbout: string; virtual;
    procedure SetAbout(const Value: string);
    function GetText: string;
    procedure ShowError;
  protected
    { Protected-Deklarationen }
    procedure CreateParams(var Params:TCreateParams); override;
    procedure SetValue(AValue : Extended);
    procedure SetMin(AValue : Extended);
    procedure SetMax(AValue : Extended);
    procedure SetDigits(AValue : Byte);
    function GetValue : Extended;
    procedure KeyPress(var Key: Char); override;
    procedure DoExit;override;
    procedure DoEnter;override;
    procedure SetAlignment(AValue:TAlignment);
    property OnEnterPress : TKeyPressEvent read FOnEnterPress write FOnEnterPress;
    property Digits   : Byte read FDigits write SetDigits;
    property Min : Extended read FMin write SetMin;
    property Max : Extended read FMax write SetMax;
    property Value    : Extended read GetValue write SetValue;
    property ErrorMessage :string read FErrorText write FErrorText;
    property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
    property About: string read GetAbout write SetAbout stored false;
  public
    { Public-Deklarationen }
    property Text: string read GetText;
    procedure Loaded; override;
  published
    { Published-Deklarationen }
    constructor Create (AOwner : TComponent);override;
  end;

  TFloatEdit = class (TCustomFloatEdit)
  published
    property About;
    property Digits;
    property Value;
    property Min;
    property Max;
    property ErrorMessage;
    property Alignment;
    property OnEnterPress;
    property Anchors;
    property AutoSelect;
    property AutoSize;
    property Color;
    property Constraints;
    property Ctl3D;
    property DragCursor;
    property DragMode;
    property Enabled;
    property Font;
    property MaxLength;
    property ParentColor;
    property ParentCtl3D;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ReadOnly;
    property ShowHint;
    property TabOrder;
    property TabStop;
    property Visible;
    property OnChange;
    property OnClick;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnStartDrag;
  end;

  // for computed increment
  TComputedIncrementEvent = procedure (Sender: TObject; const bIncrement:Boolean) of object;

  TSpinFloatEdit = class (TCustomFloatEdit)
  private
    FIncrement: Extended;
    FButton: TSpinButton;
    FEditorEnabled : Boolean;
    FComputedIncrement: TComputedIncrementEvent;
    function GetMinHeight: Integer;
    procedure SetEditRect;
    procedure WMSize(var Message: TWMSize); message WM_SIZE;
    procedure WMPaste(var Message: TWMPaste);   message WM_PASTE;
    procedure WMCut(var Message: TWMCut);   message WM_CUT;
  protected
    procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
    procedure UpClick (Sender: TObject); virtual;
    procedure DownClick (Sender: TObject); virtual;
    procedure KeyDown(var Key: Word; Shift: TShiftState); override;
    procedure KeyPress(var Key: Char); override;
    procedure CreateParams(var Params: TCreateParams); override;
    procedure CheckIncDec(const bIncrement:Boolean);
    procedure CreateWnd; override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property Button: TSpinButton read FButton;
  published
    property About;
    property EditorEnabled: Boolean read FEditorEnabled write FEditorEnabled default True;
    property Increment: Extended read FIncrement write FIncrement;
    property OnComputedIncrement: TComputedIncrementEvent read FComputedIncrement write FComputedIncrement;
    property Digits;
    property Value;
    property Min;
    property Max;
    property ErrorMessage;
    property Alignment;
    property OnEnterPress;
    property Anchors;
    property AutoSelect;
    property AutoSize;
    property Color;
    property Constraints;
    property Ctl3D;
    property DragCursor;
    property DragMode;
    property Enabled;
    property Font;
    property MaxLength;
    property ParentColor;
    property ParentCtl3D;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ReadOnly;
    property ShowHint;
    property TabOrder;
    property TabStop;
    property Visible;
    property OnChange;
    property OnClick;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnStartDrag;
  end;

procedure Register;

implementation

const
  NO_TEXT = '';
  SR_VER  = '1.3';
  SR_COPY = '

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -