如何创建包含组件的拆分器?

问题描述

| 我想在两个可调整大小的面板之间放置一些按钮,或者如果可能的话,直接在拆分器上放置一些按钮。我如何实现它们将与分离器一起移动;我如何锚定它们? 编辑: 也许我忘了提到的最重要的事情。该拆分器必须与屏幕截图上的一样宽,并且按钮应位于其上;因此,这些按钮现在实际上是“在拆分器上浮动”。 非常感谢     

解决方法

您无法自动执行。 您可以手动更改拆分器的OnMoved事件中Buttons的Left属性。 没有一个好的解决方案(拖动时的可视化效果不好),但是它可以实现所需的结果。您可以解决此问题,请尝试ResizeStyle = rsUpdate;这样,当您拖动拆分器时,按钮也会移动。
procedure TForm1.Splitter1Moved(Sender: TObject);
begin
  SpeedButton1.Left := Splitter1.Left + 40;
  SpeedButton2.Left := Splitter1.Left + 40;
  SpeedButton3.Left := Splitter1.Left + 40;
  SpeedButton4.Left := Splitter1.Left + 40;
end;
在这里您可以查看结果。 问候     ,这是我的应用程序的屏幕截图: 此表单在左侧窗格的树视图的右侧有一个单个的“ 1”。拆分器右侧是一个
TPanel
,其中包含按钮。 这是在设计时,您可以看到用虚线绘制的拆分器: 诀窍是拆分器不包含控件,为此您需要使用面板。 因此,使用命名时,您需要将一个Splitter1替换为一个包含按钮的面板,并在Panel1和新面板之间添加一个拆分器。左面板和中间面板与分离器对齐
alLeft
,右手柄面板对齐
alClient
。 设置
splitter1.autosnap:= false
    ,您可以将面板相互嵌套。
+--------------+#+------------+
|+---------+ p |#|  panel3    |
|| panel1  | a |#|            | 
||         | n |#|            |
||         | e |#|            |
||         | l |#|            |
||         | 2 |#|            |
其中ѭ7是拆分器。 将按钮放在面板2的右侧。 甚至最好在panel2上放一个多余的panel4,
panel4.align:= alRight;
panel1 align:= alClient;
panel2.Align:= alClient;
splitter1.align:= alright or alLeft //experiment here
panel3.Align:= alRight;
这应该可以解决问题。     ,有一个重要提示。分离器之间的两个面板应具有相同的参数“ 9”。 (真或假)。否则,分离器将无法工作。我为这个问题战斗了几天