Delphi 可调整大小的 bsDialog 窗体?

zig*_*zig 3 delphi delphi-7

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

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

zig*_*zig 5

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

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;
Run Code Online (Sandbox Code Playgroud)

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