如何讓在光標停靠在maskedit框的右邊且輸入的內容也從右向左顯示。

解决方案 »

  1.   

    MaskEdit1.AutoSelected := True;
    MaskEdit1.SelStart := 6;  //视你的MaskEdit1的Mask长度而定,这里就是把光标定在第6位。
      

  2.   

    基本思路就是重载MaskEdit的CreateParams函数,将MaskEdit的窗口风格改为右对齐,以下代码实现了这种效果,并且不需要动态生成MaskEdit。unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Mask;type
      TMaskEdit = class(Mask.TMaskEdit)
      protected
          procedure CreateParams(var Params: TCreateParams); override;
      end;  TForm1 = class(TForm)
        MaskEdit1: TMaskEdit;
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementationprocedure TMaskEdit.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      Params.Style := Params.Style or ES_RIGHT;
    end;{$R *.dfm}end.
      

  3.   

    var
      FHandle: THandle;
    begin
      FHandle := MaskEdit1.Handle;
      SetWindowLong(FHandle, GWL_EXSTYLE, GetWindowLong(FHandle, GWL_EXSTYLE) + WS_EX_RIGHT)
    end;