cxbuttonedit.pas

来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 264 行

PAS
264
字号

{********************************************************************}
{                                                                    }
{       Developer Express Visual Component Library                   }
{       ExpressEditors                                               }
{                                                                    }
{       Copyright (c) 1998-2008 Developer Express Inc.               }
{       ALL RIGHTS RESERVED                                          }
{                                                                    }
{   The entire contents of this file is protected by U.S. and        }
{   International Copyright Laws. Unauthorized reproduction,         }
{   reverse-engineering, and distribution of all or any portion of   }
{   the code contained in this file is strictly prohibited and may   }
{   result in severe civil and criminal penalties and will be        }
{   prosecuted to the maximum extent possible under the law.         }
{                                                                    }
{   RESTRICTIONS                                                     }
{                                                                    }
{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES            }
{   (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE     }
{   SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS    }
{   LICENSED TO DISTRIBUTE THE EXPRESSEDITORS AND ALL                }
{   ACCOMPANYING VCL CONTROLS AS PART OF AN EXECUTABLE PROGRAM ONLY. }
{                                                                    }
{   THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED       }
{   FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE         }
{   COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE        }
{   AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT   }
{   AND PERMISSION FROM DEVELOPER EXPRESS INC.                       }
{                                                                    }
{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON        }
{   ADDITIONAL RESTRICTIONS.                                         }
{                                                                    }
{********************************************************************}

unit cxButtonEdit;

{$I cxVer.inc}

interface

uses
  Classes, cxContainer, cxEdit, cxMaskEdit;

type
  { TcxCustomButtonEditProperties }

  TcxCustomButtonEditProperties = class(TcxCustomMaskEditProperties)
  public
    constructor Create(AOwner: TPersistent); override;
    class function GetContainerClass: TcxContainerClass; override;
  end;

  { TcxButtonEditProperties }

  TcxButtonEditProperties = class(TcxCustomButtonEditProperties)
  published
    property Alignment;
    property AssignedValues;
    property AutoSelect;
    property BeepOnError;
    property Buttons;
    property CaseInsensitive;
    property CharCase;
    property ClearKey;
    property ClickKey;
    property EchoMode;
    // deprecated
    property HideCursor;
    property HideSelection;
    property IgnoreMaskBlank;
    property ImeMode;
    property ImeName;
    property IncrementalSearch;
    property LookupItems;
    property LookupItemsSorted;
    property MaskKind;
    property EditMask;
    property MaxLength;
    property OEMConvert;
    property PasswordChar;
    property ReadOnly;
    property UseLeftAlignmentOnEditing;
    property ValidateOnEnter;
    property ViewStyle;
    property OnButtonClick;
    property OnChange;
    property OnEditValueChanged;
    property OnNewLookupDisplayText;
    property OnValidate;
  end;

  { TcxCustomButtonEdit }

  TcxCustomButtonEdit = class(TcxCustomMaskEdit)
  private
    function GetProperties: TcxCustomButtonEditProperties;
    function GetActiveProperties: TcxCustomButtonEditProperties;
    procedure SetProperties(Value: TcxCustomButtonEditProperties);
  protected
    function InternalGetNotPublishedStyleValues: TcxEditStyleValues; override;
    function IsCheckAsYouTypeSupports: Boolean; override;
  public
    class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
    property ActiveProperties: TcxCustomButtonEditProperties
      read GetActiveProperties;
    property Properties: TcxCustomButtonEditProperties read GetProperties
      write SetProperties;
  end;

  { TcxButtonEdit }

  TcxButtonEdit = class(TcxCustomButtonEdit)
  private
    FAreButtonsLoaded: Boolean;
    function GetActiveProperties: TcxButtonEditProperties;
    function GetProperties: TcxButtonEditProperties;
    procedure SetProperties(Value: TcxButtonEditProperties);
  protected
    procedure ReadState(Reader: TReader); override;
  public
    class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
    property ActiveProperties: TcxButtonEditProperties read GetActiveProperties;
  published
    property Anchors;
    property AutoSize;
    property BeepOnEnter;
    property Constraints;
    property DragMode;
    property Enabled;
    property ParentColor;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property Properties: TcxButtonEditProperties read GetProperties
      write SetProperties;
    property ShowHint;
    property Style;
    property StyleDisabled;
    property StyleFocused;
    property StyleHot;
    property TabOrder;
    property TabStop;
    property Text;
    property Visible;
    property DragCursor;
    property DragKind;
    property ImeMode;
    property ImeName;
    property OnClick;
{$IFDEF DELPHI5}
    property OnContextPopup;
{$ENDIF}
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEditing;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnMouseDown;
    property OnMouseEnter;
    property OnMouseLeave;
    property OnMouseMove;
    property OnMouseUp;
    property OnStartDrag;
    property OnEndDock;
    property OnStartDock;
  end;

implementation

uses
  cxEditConsts;

{ TcxCustomButtonEditProperties }

constructor TcxCustomButtonEditProperties.Create(AOwner: TPersistent);
begin
  inherited Create(AOwner);
  Buttons.Add;
  Buttons[0].Kind := bkEllipsis;
  Buttons[0].Default := True;
end;

class function TcxCustomButtonEditProperties.GetContainerClass: TcxContainerClass;
begin
  Result := TcxButtonEdit;
end;

{ TcxCustomButtonEdit }

class function TcxCustomButtonEdit.GetPropertiesClass: TcxCustomEditPropertiesClass; 
begin
  Result := TcxCustomButtonEditProperties;
end;

function TcxCustomButtonEdit.InternalGetNotPublishedStyleValues: TcxEditStyleValues;
begin
  Result := inherited InternalGetNotPublishedStyleValues -
    [svButtonStyle, svButtonTransparency, svGradientButtons];
end;

function TcxCustomButtonEdit.IsCheckAsYouTypeSupports: Boolean;
begin
  Result := IsTextInputMode;
end;

function TcxCustomButtonEdit.GetProperties: TcxCustomButtonEditProperties;
begin
  Result := TcxCustomButtonEditProperties(FProperties);
end;

function TcxCustomButtonEdit.GetActiveProperties: TcxCustomButtonEditProperties;
begin
  Result := TcxCustomButtonEditProperties(InternalGetActiveProperties);
end;

procedure TcxCustomButtonEdit.SetProperties(Value: TcxCustomButtonEditProperties);
begin
  FProperties.Assign(Value);
end;

{ TcxButtonEdit }

class function TcxButtonEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
  Result := TcxButtonEditProperties;
end;

procedure TcxButtonEdit.ReadState(Reader: TReader);
begin
  if not FAreButtonsLoaded then
  begin
    Properties.Buttons.Clear;
    ActiveProperties.Buttons.Clear;
    FAreButtonsLoaded := True;
  end;
  inherited ReadState(Reader);
end;

function TcxButtonEdit.GetActiveProperties: TcxButtonEditProperties;
begin
  Result := TcxButtonEditProperties(InternalGetActiveProperties);
end;

function TcxButtonEdit.GetProperties: TcxButtonEditProperties;
begin
  Result := TcxButtonEditProperties(FProperties);
end;

procedure TcxButtonEdit.SetProperties(Value: TcxButtonEditProperties);
begin
  FProperties.Assign(Value);
end;

initialization
  GetRegisteredEditProperties.Register(TcxButtonEditProperties, scxSEditRepositoryButtonItem);

end.

⌨️ 快捷键说明

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