请问edit控件输入的内容怎么才能右对齐?我在线等待!谢谢!

解决方案 »

  1.   

    在你的程序中替换掉TEdit,如下:
    unit Unit1;interfaceuses
      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.   

    由sysu(死树) 的例子得到启发,写出以下代码:
    procedure TForm1.Button1Click(Sender: TObject);
    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.   

    我的组件就OK了
    设置Alignment就可以左中右对齐都可以
    unit EditEx;// TEditEx --- LYSoft by Liu Yang 2002.12.5
    // support Alignment propertyinterfaceuses Messages, Windows, SysUtils, Classes, Controls, Forms, StdCtrls;type
      TEditEx = class(TCustomEdit)
      private
        { Private declarations }
        FAlignment: TAlignment;
      protected
        { Protected declarations }
        procedure CreateParams(var Params: TCreateParams); override;
        procedure Loaded; override;
        procedure SetAlignment(Value: TAlignment);
      public
        { Public declarations }
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
        function GetControlsAlignment: TAlignment; override;
      published
        { Published declarations }
        property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
        property Align;
        property Anchors;
        property BevelEdges;
        property BevelInner;
        property BevelKind default bkNone;
        property BevelOuter;
        property BiDiMode;
        property BorderStyle;
        property Color;
        property Constraints;
        property Ctl3D;
        property DragCursor;
        property DragKind;
        property DragMode;
        property Enabled;
        property Font;
        property HideSelection;
        property ImeMode;
        property ImeName;
        property MaxLength;
        property OEMConvert;
        property ParentBiDiMode;
        property ParentColor;
        property ParentCtl3D;
        property ParentFont;
        property ParentShowHint;
        property PopupMenu;
        property ReadOnly;
        property ShowHint;
        property TabOrder;
        property TabStop;
        property Text;
        property Visible;
        property OnChange;
        property OnClick;
        property OnContextPopup;
        property OnDblClick;
        property OnDragDrop;
        property OnDragOver;
        property OnEndDock;
        property OnEndDrag;
        property OnEnter;
        property OnExit;
        property OnKeyDown;
        property OnKeyPress;
        property OnKeyUp;
        property OnMouseDown;
        property OnMouseMove;
        property OnMouseUp;
        property OnStartDock;
        property OnStartDrag;
      end;procedure Register;implementationprocedure Register;
    begin
      RegisterComponents('Custom', [TEditEx]);
    end;constructor TEditEx.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      ParentBackground := False;
    end;procedure TEditEx.CreateParams(var Params: TCreateParams);
    const
      Alignments: array[Boolean, TAlignment] of DWORD =
        ((ES_LEFT, ES_RIGHT, ES_CENTER),(ES_RIGHT, ES_LEFT, ES_CENTER));
    begin
      inherited CreateParams(Params);
      with Params do
      begin
        Style := Style or
          Alignments[UseRightToLeftAlignment, FAlignment];
      end;
    end;destructor TEditEx.Destroy();
    begin
      inherited Destroy();
    end;function TEditEx.GetControlsAlignment: TAlignment;
    begin
      Result := FAlignment;
    end;procedure TEditEx.Loaded;
    begin
      inherited Loaded;
      Modified := False;
    end;procedure TEditEx.SetAlignment(Value:TAlignment);
    begin
      if FAlignment <> Value then
      begin
        FAlignment := Value;
        RecreateWnd;
      end;
    end;end.
      

  4.   

    如果觉得很烦,就用format函数来做吧!