edit文本框中的内容都是左对齐,那个属性能使它右对齐呀!谢谢!

解决方案 »

  1.   

    承TEdit,重载CreateParams,修改Param即可。procedure TEdit_Ex.CreateParams(var Params: TCreateParams);begininherited;if self.FTextOnRight then Params.Style:=Params.Style or ES_RIGHT;end;
      

  2.   

    http://www.scalabium.com/faq/dct0034.htm是houwei1008(下雨天) 的方法
    unit adpEdit;interfaceuses
      SysUtils, Classes, Controls, StdCtrls, Graphics, Windows, Messages;type
      TadpEdit = class(TEdit)
      private
        FOldBackColor : TColor;
        FColorOnEnter : TColor;
        FAlignment: TAlignment;
        FTabOnEnter: boolean;
        procedure SetAlignment(const Value: TAlignment);    property OldBackColor : TColor read FOldBackColor write FOldBackColor;
      protected
        procedure DoEnter; override;
        procedure DoExit; override;
        procedure KeyPress(var Key: Char); override;    procedure CreateParams(var Params: TCreateParams); override;
      public
        constructor Create(AOwner:TComponent); override;
      published
        property Alignment : TAlignment read FAlignment write SetAlignment;
        property ColorOnEnter : TColor read FColorOnEnter write FColorOnEnter;
        property TabOnEnter : boolean read FTabOnEnter write FTabOnEnter;
      end;procedure Register;implementationprocedure Register;
    begin
      RegisterComponents('delphi.about.com', [TadpEdit]);
    end;{ TadpEdit }
    procedure TadpEdit.CreateParams(var Params: TCreateParams);
    const
      Alignments: array[TAlignment] of DWORD = (ES_LEFT, ES_RIGHT, ES_CENTER);
    begin
      inherited CreateParams(Params);  with Params do
        Style := Style or Alignments[FAlignment];
    end; (*CreateParams*)constructor TadpEdit.Create(AOwner: TComponent);
    begin
      inherited;  FColorOnEnter := Color;
      Alignment := taLeftJustify;
    end; (*Create*)procedure TadpEdit.DoEnter;
    begin
      OldBackColor := Color;
      Color := ColorOnEnter;  inherited;
    end; (*DoEnter*)procedure TadpEdit.DoExit;
    begin
      Color := OldBackColor;  inherited;
    end; (*DoExit*)procedure TadpEdit.SetAlignment(const Value: TAlignment);
    begin
      if FAlignment <> Value then
      begin
        FAlignment := Value;
        RecreateWnd;
      end;
    end; (*SetAlignment*)procedure TadpEdit.KeyPress(var Key: Char);
    begin
      inherited KeyPress(Key);  if TabOnEnter AND (Owner is TWinControl) then
      begin
        if Key = Char(VK_RETURN) then
        begin
         if HiWord(GetKeyState(VK_SHIFT)) <> 0 then
            PostMessage((Owner as TWinControl).Handle, WM_NEXTDLGCTL, 1, 0)
         else
            PostMessage((Owner as TWinControl).Handle, WM_NEXTDLGCTL, 0, 0);
         Key := #0;
        end;
      end;
    end; (*KeyPress*)end. (*adpEdit.pas*)
      

  3.   

    如果你不想用控件, 也可用如下:var
     defstyle: dWord;
    begin
     defstyle := GetWindowLong(Edit1.Handle, GWL_STYLE);
     SetWindowLong(Edit1.Handle, GWL_STYLE, defstyle or ES_NUMBER)
    end;
      

  4.   

    應該是用 ES_RIGHT 參數
      

  5.   

    承TEdit,重载CreateParams,修改Param即可。procedure TEdit_Ex.CreateParams(var Params: TCreateParams);begininherited;if self.FTextOnRight then Params.Style:=Params.Style or ES_RIGHT;end;
      

  6.   

    procedure TEdit_Ex.CreateParams(var Params: TCreateParams);begin  inherited;  if self.FTextOnRight then Params.Style:=Params.Style or ES_RIGHT;end;
      

  7.   

    to: aiirii(ari-爱的眼睛)
      你的ES_RIGHT 參數不好用啊。
      

  8.   

    to  aiirii: After the control has been created, these styles cannot be modified, except as noted. 
    -------------------------------------
    只能继承edit,重新作。
      

  9.   

    我想你要不并不是edit,因为你要右对齐就是为发输入数值型,对吗?
    你了可以试试用其它的控件啊,图标是一个文本框中间写着123的那个控件,或都上网去找几个控件.