如:当对TEdit.Text:='100' 时,显示内容为$100.00 ,并向右对齐,当此TEdit获得焦点时,显示100.00 ,并向左对齐应如何实现?请大侠指点最好有源码   在此先谢了

解决方案 »

  1.   

    DBEdit如果连接的是一个Float字段有这个功能,你可以到VCL里边去看看DBEdit是怎么处理的
      

  2.   

    自己做个简单的控件:unit AlignEdit; interface uses 
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
      StdCtrls; type   TAlign = (eaLeft, eaCenter, eaRight);   TAlignEdit = class(TEdit) 
      private 
        { Private-Deklarationen } 
        FAlign: TAlign; 
        procedure SetAlign(const Value: TAlign); 
      protected 
        { Protected-Deklarationen } 
        procedure CreateParams(var Params: TCreateParams); override; 
      public 
        { Public-Deklarationen } 
        constructor Create(AOwner: TComponent); override; 
      published 
        { Published-Deklarationen } 
        property Alignment: TAlign read FAlign write SetAlign default eaLeft; 
      end; procedure Register; implementation constructor TAlignEdit.Create(Aowner: TComponent); 
    begin 
      inherited Create(AOwner); 
      FAlign := eaLeft; 
    end; procedure TAlignEdit.SetAlign(const Value: TAlign); 
    begin 
      if FAlign <> Value then 
      begin 
        FAlign := Value; 
        RecreateWnd; 
      end; 
    end; procedure TAlignEdit.CreateParams(var Params: TCreateParams); 
    begin 
      inherited; 
      case FAlign of 
        eaLeft: Params.Style   := Params.Style or ES_LEFT; 
        eaCenter: Params.Style := Params.Style or ES_CENTER; 
        eaRight: Params.Style  := Params.Style or ES_RIGHT; 
      end; 
    end; procedure Register; 
    begin 
      RegisterComponents('SwissDelphiCenter', [TAlignEdit]); 
    end; end. 
      

  3.   

    用Delphi自带的MaskEdit控件,仔细研究一下帮助,你的要求都可以实现