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

王朝delphi·作者佚名  2006-01-08
宽屏版  字体: |||超大  

unit REdit;

interface

uses

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;

implementation

procedure 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控件制作者一点参考,当然不入方家法眼。不足之处,敬请指正。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有