【问题标题】:auto adjust docked form width/height on a panel自动调整面板上的停靠表单宽度/高度
【发布时间】:2014-07-25 18:04:09
【问题描述】:

在我的一个应用程序中,面板上有 3 个停靠表单。

一切正常。 但是当我调整面板(面板在主窗体上)大小时,它变成了

我希望自动调整宽度/高度停靠 3 个表单,使它们全部显示而不是隐藏某些部分。

【问题讨论】:

  • 所以?你有什么问题?
  • 当我调整面板大小时,我希望也能按比例调整3个停靠窗体的大小
  • 您不需要拆分器,您只需要处理panel.OnResize并平均调整3个子面板,如答案所示。那你的问题是什么?!

标签: delphi


【解决方案1】:

如果您想按比例调整所有停靠表单,那么挂钩到 Panel 的 OnResize 事件可能是最简单的。像这样的:

procedure Panel1Resize(Sender: TObject);
begin
  DockForm1.Width := Panel1.ClientWidth div 3;
  DockForm2.Width := DockForm1.Width;
  DockForm3.Width := Panel1.ClientWidth - (DockForm1.Width * 2);
end;

我不确定什么是停靠表单,但您可能还需要设置它的位置。

【讨论】:

  • 如果我调整拆分器(红色箭头所在的位置)或重新排列面板上的3个停靠窗体,它将触发哪个事件?我找不到活动
  • @arachide 拆分器有一个 OnMoved 事件。如果您想跟踪使用拆分器更新的百分比,那么您应该挂钩,保存百分比,然后在调整面板大小后计算宽度时使用这些百分比。
  • 但是如何获取拆分器的处理程序?它是由 Delphi 创建的,我找不到它的处理程序在哪里
  • @arachide 你有没有被整理出来,或者你最后的评论对你来说仍然是个问题?
猜你喜欢
  • 2018-05-16
  • 2013-02-07
  • 1970-01-01
  • 2013-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-27
  • 2012-10-26
相关资源
最近更新 更多