是否可以将Panel拖到窗体外?

时间:2014-11-13 18:05:04

标签: delphi delphi-7

我想知道是否有可能做出这样的事情:

image

但没有创建第二个TForm。

我使用的是Delphi 7,但如果有更新的版本可以告诉我。

1 个答案:

答案 0 :(得分:3)

我一直认为DockEx演示过于复杂,无法学习对接的基础知识。

以下是我所知道的最简单的例子:

  • 将TPanel添加到空白表单并将其DragKind属性设置为dkDock,将DragMode设置为dmAutomatic,将其Align属性设置为alTop。

  • 在TPanel上删除TButton

  • 将以下代码添加到表单中:

  • 运行项目并手动将面板拖离窗体。

  • 点击Button1。

以上显示了Delphi如何在没有你的情况下取消停靠Panel(或TEdit等) 正如雷米在评论中所说,需要创建第二种形式来托管它而不被移除。 Button1点击处理程序显示了重新对接面板的方式(当然不完美)。下一个:

  • 再次取消该面板,但这一次,请单击其自动创建的主机上的“关闭”按钮。

然后,阅读OLH并找出a)如何让现在隐藏的面板再次可见,以及b)重新定位&在取消对接之前将其重新对齐在表格上,

  type
    TMyClass = TControl;

  procedure TForm1.Button1Click(Sender: TObject);
  begin
    TMyClass(Panel1).ManualDock(Self, Nil, alNone);
  end;