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

Forms 如何在Delphi XE2中使TMaskEdit成为多行编辑,forms,delphi,controls,edit,mask,Forms,Delphi,Controls,Edit,Mask,我需要将multi-line的功能添加到我的TMaskEdit中,我可以找到负责此功能的属性。任何帮助都将不胜感激。您可以创建TMaskEdit多行,通过重写该方法将样式添加到控件中。像这样 type TMaskEdit = class(Vcl.Mask.TMaskEdit) protected { Protected declarations } procedure CreateParams(var Params: TCreateParams); override;

我需要将multi-line的功能添加到我的TMaskEdit中,我可以找到负责此功能的属性。任何帮助都将不胜感激。

您可以创建TMaskEdit多行,通过重写该方法将样式添加到控件中。像这样

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; 

可以使TMaskEdit多行,通过重写该方法将样式添加到控件中。像这样

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; 

我不完全确定这与TMemo有何不同。它不会导致在单行编辑中包含多行的换行文本,但基本上是一个没有有用的换行和滚动条配置属性的TMemo。但是,从技术上讲,它回答了提出的问题。我不完全确定这与TMemo有何不同。它不会导致在单行编辑中包含多行的换行文本,但基本上是一个没有有用的换行和滚动条配置属性的TMemo。但是,从技术上讲,它回答了提出的问题。