如题!

解决方案 »

  1.   

    用第三方控件,edit本身很难做到!
      

  2.   

    zsjzwj(北极熊) ,能介绍一个这样的控件吗?
      

  3.   

    根据输入的字符串长度和EDIT的长度,在字符串前加上EDIT长度-输入字符串的长度的空格,然后根据输入来减少空格的长度。
    还有类似key=#8时,根据是字母,数字,还是中文,来确定空格长度-1还是-2。
    就是这样的想法了,好像是很复杂
      

  4.   

    这问题在CSDN问了N次了
    我也回答了N次了
    建议添加到FAQ了用我写的组件可以的了unit EditEx;// TEditEx --- LYSoft.7u7.net 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.
      

  5.   

    procedure TForm1.Edit1Exit(Sender: TObject);
    begin
      setwindowlong(edit1.handle, GWL_STYLE,
          getwindowlong(edit1.handle, GWL_STYLE)
            and not ES_AUTOHSCROLL or ES_MULTILINE or ES_Right);
      edit1.invalidate;
    end;
      

  6.   

    楼上的办法不错啊,不过是不是写在ONKEYPRESS或者ONKEYDOWN里面更好啊~
      

  7.   

    建议使用BusinessSkinForm控件,这些小小的功能很轻松就实现了!
      

  8.   

    靠,用大炮打蚊子!用得着吗?呵呵!用迂回的方法应该更好些的!直接把memo控件用来模拟不就行 了!
      memo1.Alignment :=tacenter;
      memo1.WordWrap :=false;
    /////
      

  9.   

    同xiangwangz(&lt;*敝屣荣华 浮云生死 此身何惧*&gt;) 的意见一致
    这么麻烦干吗?