发信人: soaringbird(假行僧*飞翔鸟) 
整理人: teleme(2002-07-23 12:50:58), 站内信件
 | 
 
 
unit NewEdit;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Classes, Controls, StdCtrls;
 
 type
   TNewEdit = class(TEdit)
   private
     FAlignment: TAlignment;
     procedure SetAlignment(const Value: TAlignment);
 
     { Private declarations }
   protected
     { Protected declarations }
     procedure CreateParams(var Params: TCreateParams); override;
   public
     { Public declarations }
   published
     { Published declarations }
     property Alignment:TAlignment read FAlignment write SetAlignment default taLeftJustify;
   end;
 
 procedure Register;
 
 implementation
 
 procedure Register;
 begin
   RegisterComponents('New', [TNewEdit]);
 end;
 
 { TNewEdit }
 
 
 procedure TNewEdit.SetAlignment(const Value: TAlignment);
 begin
   if FAlignment <> Value then
   begin
     FAlignment := Value;
     RecreateWnd();
   end;
 end;
 procedure TNewEdit.CreateParams(var Params: TCreateParams);
 const
   Alignments: array[Boolean, TAlignment] of DWORD =
     ((ES_LEFT, ES_RIGHT, ES_CENTER),(ES_RIGHT, ES_LEFT, ES_CENTER));
   ScrollBar: array[TScrollStyle] of DWORD = (0, WS_HSCROLL, WS_VSCROLL,
     WS_HSCROLL or WS_VSCROLL);
   WordWraps: array[Boolean] of DWORD = (0, ES_AUTOHSCROLL);
 begin
   inherited CreateParams(Params);
   with Params do
   begin
     Style := Style or Alignments[UseRightToLeftAlignment, FAlignment];
   end;
 end;
 
 end. | 
 
 
 |