delphi - 水平对接表单而不显示表单

标签 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
  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;

结果是好的,但是如何在停靠之前不显示表单的情况下解决它。

enter image description here

最佳答案

您可以通过将 BorderStyle 设置为 bsNone 来防止 TColorForm 在停靠之前闪烁。

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

关于delphi - 水平对接表单而不显示表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49656892/

相关文章:

delphi - 在 Rad Studio 开发环境中将 Delphi 10.1 连接到 Interbase XE7 Desktop

delphi - 如何检测笔记本电脑何时使用电池运行?

delphi - 没有找到rtl100.bpl?

delphi - 如何在delphi中为azure blob存储生成MD5?

multithreading - 获取当前线程句柄

delphi - LiveBindings 在设计时工作,但在运行时不工作

multithreading - 主线程阻塞并行线程?

delphi - 创建 TDictionary<TKey,TValue> 的反向键列表的简单方法?

delphi - 检查查询是否返回比您创建查询并定义其持久字段时更多的字段

delphi - Async InputQuery 不处理“取消”按钮