简体   繁体   English

如何在Delphi XE2中使TMaskEdit多行编辑

[英]How to make TMaskEdit a multiline edit in Delphi XE2

I need the functionality of multi-line to be added to my TMaskEdit, I can locate the property responsible for this feature. 我需要将多行功能添加到我的TMaskEdit中,我可以找到负责此功能的属性。 Any help would be appreciated. 任何帮助,将不胜感激。

You can make a TMaskEdit multiline, adding the ES_MULTILINE Style to the control via overriding the CreateParams method. 您可以制作TMaskEdit多行,通过重写CreateParams方法将ES_MULTILINE样式添加到控件中。 Like so 像这样

type

  TMaskEdit = class(Vcl.Mask.TMaskEdit)
  protected
    { Protected declarations }
    procedure CreateParams(var Params: TCreateParams); override;
  end;

  TForm30 = class(TForm)
    MaskEdit1: TMaskEdit;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form30: TForm30;

implementation

{$R *.dfm}


procedure TMaskEdit.CreateParams(var Params: TCreateParams);
const Alignments: array[TAlignment] of Longint =
      (ES_LEFT, ES_RIGHT, ES_CENTER);
begin
  inherited CreateParams(Params);
                                  //Multiline        //scrollbars
  Params.Style := Params.Style or ES_MULTILINE or WS_HSCROLL or WS_VSCROLL;
end;

procedure TForm30.FormCreate(Sender: TObject);
begin
 MaskEdit1.Height:= 250;
 MaskEdit1.AutoSize:= False;
end; 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM