如何让Tedit组件中的文字居中?
Tedit组件好像没有这个属性.
谢谢.

解决方案 »

  1.   

    unit  MyEdit;  
     
    interface  
     
    uses  
       Controls,Windows,  Messages,  SysUtils,  Variants,  Classes,  Graphics,Forms,  Dialogs,  StdCtrls;  
     
     
    type  
       TMyEdit=class(TEdit)  
       private  
           FAlignment:TAlignment;  
           procedure  SetAlignment(const  Value:  TAlignment);  
           procedure  CreateParams(var  Params:TCreateParams);override;  
       protected  
       published  
             property    Alignment:TAlignment  read  FAlignment  write  SetAlignment;  
       end;  
     
     
    implementation  
     
    {  TMyEdit  }  
     
    constructor  TMyEdit.Create(AOwner:  TComponent);  
    begin  
       inherited;  
     
    end;  
     
    procedure  TMyEdit.CreateParams(var  Params:  TCreateParams);  
    begin  
       inherited;  
       case  FAlignment  of  
           taLeftJustify:  
               begin  
                   Params.Style  :=  Params.Style  +  ES_LEFT;  
               end;  
           taRightJustify:  
               begin  
                   Params.Style  :=  Params.Style  +  ES_RIGHT;  
               end;  
           taCenter:  
               begin  
                   Params.Style  :=  Params.Style  +  ES_CENTER;  
               end;  
       end;  
    end;  
    procedure  TMyEdit.SetAlignment(const  Value:  TAlignment);  
    begin  
       if  FAlignment<>Value  then  
       begin  
           FAlignment  :=  Value;  
           RecreateWnd;  
       end;  
    end;  
    end.  
     
    ---------------  
    uses  MyEdit;  
     
    procedure  TForm1.Button1Click(Sender:  TObject);  
    var  
       MyEdit:TMyEdit;  
    begin  
       MyEdit:=TMyEdit.Create(Form1);  
       MyEdit.Alignment:=taCenter;  
       MyEdit.Parent:=Form1;  
    end;