一个可以靠右显示的简单Edit控件

    技术2022-05-11  141

    unit REdit;interfaceuses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  StdCtrls;type  TCustomREdit = class(TCustomEdit)  private    { Private declarations }    FAlignment:TAlignment;    procedure SetAlignment(Value: TAlignment);  protected    { Protected declarations }    property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;    procedure CreateParams(var Params: TCreateParams); override;  public    { Public declarations }  published    { Published declarations }  end;  TREdit = class(TCustomREdit)  published    { Published declarations }    property Alignment;    property Anchors;    property AutoSelect;    property AutoSize;    property BiDiMode;    property BorderStyle;    property CharCase;    property Color;    property Constraints;    property Ctl3D;    property DragCursor;    property DragKind;    property DragMode;    property Enabled;    property Font;    property HideSelection;    property ImeMode;    property ImeName;    property MaxLength;    property OEMConvert;    property ParentBiDiMode;    property ParentColor;    property ParentCtl3D;    property ParentFont;    property ParentShowHint;    property PasswordChar;    property PopupMenu;    property ReadOnly;    property ShowHint;    property TabOrder;    property TabStop;    property Text;    property Visible;    property OnChange;    property OnClick;    property OnContextPopup;    property OnDblClick;    property OnDragDrop;    property OnDragOver;    property OnEndDock;    property OnEndDrag;    property OnEnter;    property OnExit;    property OnKeyDown;    property OnKeyPress;    property OnKeyUp;    property OnMouseDown;    property OnMouseMove;    property OnMouseUp;    property OnStartDock;    property OnStartDrag;  end;procedure Register;implementationprocedure TCustomREdit.CreateParams(var Params: TCreateParams);const  Alignments: array[Boolean, TAlignment] of DWORD =    ((ES_LEFT, ES_RIGHT, ES_CENTER),(ES_RIGHT, ES_LEFT, ES_CENTER));begin  inherited CreateParams(Params);  with Params do  begin    Style := Style or Alignments[UseRightToLeftAlignment, FAlignment];  end;end;procedure TCustomRedit.SetAlignment(Value:TAlignment);begin  if FAlignment <> Value then  begin    FAlignment := Value;    RecreateWnd;  end;end;procedure Register;begin  RegisterComponents('Samples', [TREdit]);end;end.

    上述只是给初学Delphi控件制作者一点参考,当然不入方家法眼。不足之处,敬请指正。


    最新回复(0)