Delphi 水平对接窗体,不显示窗体

Delphi 水平对接窗体,不显示窗体,delphi,delphi-10.1-berlin,Delphi,Delphi 10.1 Berlin,我想要的是将表单水平停靠多次。但我有一个简单的问题。 任何帮助都将不胜感激 type TForm1 = class(TForm) Button1: TButton; Panel1: TPanel; procedure Button1Click(Sender: TObject); private { Private declarations } tmpform: TfColorForm; public { Public declarations } end; var Form

我想要的是将表单水平停靠多次。但我有一个简单的问题。 任何帮助都将不胜感激

type
  TForm1 = class(TForm)
  Button1: TButton;
  Panel1: TPanel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
  tmpform: TfColorForm;
public
{ Public declarations }
end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  lForm: TColorForm;
begin
  lForm := TColorForm.Create(Application);
  tmpform := lForm;
  lform.Show;
  lForm.ManualDock(Panel1, tmpform, alTop);
end;
我想多次停靠的表单

type
TColorForm = class(TForm)
  Button1: TButton;
  procedure FormCreate(Sender: TObject);
  procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

var
  ColorForm: TColorForm;

  implementation

{$R *.dfm}

procedure TfColorForm.FormClose(Sender: TObject; var Action:   TCloseAction);
begin
  Action := caFree;
end;

procedure TfColorForm.FormCreate(Sender: TObject);
begin
  Color := Random($FFFFFF);
  Caption := IntToHex(Color, 6);
end;
结果是可以的,但如何在不显示窗体的情况下解决它,然后再将其停靠


您可以通过将
边框样式设置为
bsNone
来防止
t颜色在停靠前闪烁


或者,如果要在创建所有表单之前隐藏表单,只需隐藏(
Visible:=False
)面板,并在创建所有表单后显示它。

如果在“lform.ManualDock(..”之后移动“lform.show;”,会发生什么情况?所有表单都是垂直的,而不是水平的。是的,问题是表单在停靠前闪烁。谢谢您的帮助!