Delphi 可调整大小的 bsDialog 表单?

Delphi resizable bsDialog Form?

如何使用 BorderStyle 制作表单 (ShowModal) bsDialog。但是仍然可以调整大小并具有关闭按钮(没有图标、最小化、最大化)的那个?

我不需要它来显示尺寸手柄。

BorderStyle 设置为 bsSizeToolWin

这是我的解决方案,似乎工作正常:

type
  TForm2 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
  protected
    procedure CreateWnd; override;
    procedure CreateParams(var Params: TCreateParams); override;
  public
  end;

var
  Form2: TForm2;

implementation

{$R *.DFM}

procedure TForm2.FormCreate(Sender: TObject);
begin
  BorderIcons := [biSystemMenu];
  BorderStyle := bsSizeable;
  AutoScroll := False;
end;

procedure TForm2.CreateWnd;
begin
  inherited;
  SendMessage(Handle, WM_SETICON, 1, 0);
end;

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle or WS_EX_DLGMODALFRAME or WS_EX_WINDOWEDGE;
end;

IMO,这不能用 bsDialog 完成,但上面的感觉和看起来就像一个可以调整大小的“bsDialog”。