type
  TEditEx = class(TEdit)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;{ TEditEx }procedure TEditEx.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style or ES_RIGHT;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
  with TEditEx.Create(Self) do begin
    Parent := Self;
    //Left
    //Top
  end;
end;

解决方案 »

  1.   

    再请问,这个程序的Edit.Text如果在程序中赋值,如何实现,好像在程序里用Edit.text:=‘hi’,在Edit上现实不出来?
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TEditEx = class(TEdit)
      protected
        procedure CreateParams(var Params: TCreateParams); override;
      end;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        { Private declarations }
        FEditEx: TEditEx;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}{ TEditEx }procedure TEditEx.CreateParams(var Params: TCreateParams);
    begin
      inherited;
      Params.Style := Params.Style or ES_RIGHT;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      FEditEx := TEditEx.Create(Self);
      FEditEx.Parent := Self;
      FEditEx.Text := '是不是这样?';
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      FEditEx.Free;
    end;end.