控件textbox默认是字符左对齐,请问诸位大虾,如何才能使其字符右对齐呢?谢谢

解决方案 »

  1.   

    你说的是TEdit对吧,若是说派生一个子类添加一个Alignment属性:
    unit EditEx;interfaceuses
      SysUtils, Windows, Classes, Controls, StdCtrls;type
      TEditEx = class(TEdit)
      private
        { Private declarations }
        FAlignment: TAlignment;
        procedure SetAlignment(Value: TAlignment);
      protected
        { Protected declarations }
        procedure CreateParams(var Params: TCreateParams); override;
      public
        { Public declarations }
      published
        { Published declarations }
        property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
      end;procedure Register;implementationprocedure Register;
    begin
      RegisterComponents('System', [TEditEx]);
    end;{ TEditEx }procedure TEditEx.CreateParams(var Params: TCreateParams);
    const
      Alignments: array[TAlignment] of DWORD = (ES_LEFT, ES_RIGHT, ES_CENTER);
    begin
      inherited;
      Params.Style := Params.Style or Alignments[FAlignment];
    end;procedure TEditEx.SetAlignment(Value: TAlignment);
    begin
      if FAlignment <> Value then
      begin
        FAlignment := Value;
        RecreateWnd;
      end;
    end;end.
    上面就是其.pas文件,发布了一个Alignment属性,你存为.pas文件装上试一试
      

  2.   

    SetWindowLong(edit1.Handle,GWL_STYLE,GetWindowLong(edit1.Handle,GWL_STYLE) or ES_RIGHT);