如何使TEdit控件显示内容靠右显示?

解决方案 »

  1.   

    在你的程序中替换掉TEdit,如下:   
      unit   Unit1;   
        
      interface   
        
      uses   
          Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,   
          Dialogs,   StdCtrls;   
        
      type   
        TEdit   =   class(StdCtrls.TEdit)   
        private   
            FAlignment   :   TAlignment;   
            procedure   SetAlignment(Value:   TAlignment);   
        protected   
            procedure   CreateParams(var   Params:   TCreateParams);   override;   
        public   
            property   Alignment:   TAlignment   read   FAlignment   write   SetAlignment;   
      end;   
        
      type   
          TForm1   =   class(TForm)   
              Edit1:   TEdit;   
              Button1:   TButton;   
              procedure   Button1Click(Sender:   TObject);   
          private   
              {   Private   declarations   }   
          public   
              {   Public   declarations   }   
          end;   
        
      var   
          Form1:   TForm1;   
        
      implementation   
        
      {$R   *.dfm}   
        
      procedure   TEdit.CreateParams(var   Params:   TCreateParams);   
      const   
        Alignments   :   array[TAlignment]   of   LongWord=   (ES_Left,ES_Right,   ES_Center);   
      begin   
        inherited   CreateParams(Params);   
        Params.Style   :=   Params.Style   or   Alignments[FAlignment];   
      end;   
        
      procedure   TEdit.SetAlignment(Value:   TAlignment);   
      begin   
        if   FAlignment   <>   Value   then   
        begin   
            FAlignment   :=   Value;   
            RecreateWnd;   
        end;   
      end;   
        
      procedure   TForm1.Button1Click(Sender:   TObject);   
      begin   
          Edit1.Alignment   :=   taRightJustify;   
      end;   
        
      end.
      

  2.   

    当然也可以自已用createwindowex建一个
      var   
          hEdt   :   Thandle;
      begin
          hEdt   :=   CreateWindowEx(WS_EX_CLIENTEDGE,'Edit',   'Edit1',WS_CHILD   or   ES_RIGHT,100,100,
              100,20,Self.handle,0,hInstance,0);
          ShowWindow(hEdt,sw_normal);
    end;
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
      TMyEdit = class(Tedit)  //继承Tedit
      procedure CreateParams(var Params: TCreateParams); override;//重载
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    { TMyEdit }procedure TMyEdit.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      Params.Style:=Params.Style or ES_RIGHT;end;procedure TForm1.Button1Click(Sender: TObject);
    var
      edit1 : TmyEdit;
    begin
      edit1 := TmyEdit.Create(self);//生在派生类的实例
      Edit1.Parent:=Form1;//使edit1可以在窗体上看见
     //以下定位出现的坐标
      Edit1.Left:=100;
      Edit1.Top:=100;
      Edit1.Width:=100;
      edit1.Text := 'OK';//添加显示内容end;end.