View 菜單中有個Alignmentpl..即可操作.

解决方案 »

  1.   

    你可能误会了,我的意思是TEdit.text的右对齐,不是指Tedit在整个窗体上的对齐!
    谢谢参予
      

  2.   

    帮你解决
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, CoolCtrls;type
      TMyEdit=Class(TEdit)
      private
        FTextAlign: TAlignment;
        procedure SetTextAlign(const Value: TAlignment);
      protected
        procedure CreateParams(var Params: TCreateParams); override;
      published
        property TextAlign: TAlignment read FTextAlign write SetTextAlign default taLeftJustify;
      end;
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        Edit:TMyEdit;
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}{ TMyEdit }procedure TMyEdit.CreateParams(var Params: TCreateParams);
    const
       Alignments: array [TAlignment] of DWord = (ES_LEFT, ES_RIGHT, ES_CENTER);
    begin
      inherited CreateParams(Params);
      with Params do
        Style := Params.Style or ES_MULTILINE or Alignments[FTextAlign];
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Edit:=TMyEdit.Create(Self);
      Edit.Parent:=Self;
      Edit.Align:=alTop;
      Edit.Text:='aaaa';
    end;procedure TMyEdit.SetTextAlign(const Value: TAlignment);
    begin
      FTextAlign := Value;
      RecreateWnd;
    end;procedure TForm1.Button1Click(Sender: TObject);
    Var i:Word;
    begin
      i:=ORD(Edit.TextAlign)+1;
      i:=i MOD 3;
      Edit.TextAlign:=TAlignment(i);
    end;end.可别忘了加分:)
      

  3.   

    procedure TForm1.ButtonClick(Sender: TObject);
    var
      Style: DWORD;
    begin
      Style := GetWindowLong(Edit1.Handle, GWL_STYLE);
      Style := Style or ES_RIGHT;
      SetWindowLong(Edit1.Handle, GWL_STYLE, Style);
      Edit1.Invalidate;
    end;
      

  4.   

    //点击后左右对齐切换
    procedure TForm1.ButtonClick(Sender: TObject);
    var
      Style: DWORD;
    begin
      Style := GetWindowLong(Edit1.Handle, GWL_STYLE);
      if (Style and ES_RIGHT) = ES_RIGHT then
        Dec(Style, ES_RIGHT) 
      else
        Style := Style + ES_RIGHT;
      SetWindowLong(Edit1.Handle, GWL_STYLE, Style);
      Edit1.Invalidate;
    end;
      

  5.   

    我想用memo代替eidt就可以了,只要设置相应的属性
      

  6.   

    you can find a free VCL from the www.delphi32.com
      

  7.   

    copy_paste(木石三) 的答案更直观一些,但是D6 Win2k 不起作用,不知何故? XP下,或者BC没问题