问题描述
|
我想在两个可调整大小的面板之间放置一些按钮,或者如果可能的话,直接在拆分器上放置一些按钮。我如何实现它们将与分离器一起移动;我如何锚定它们?
编辑:
也许我忘了提到的最重要的事情。该拆分器必须与屏幕截图上的一样宽,并且按钮应位于其上;因此,这些按钮现在实际上是“在拆分器上浮动”。
非常感谢
解决方法
您无法自动执行。
您可以手动更改拆分器的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”。 (真或假)。否则,分离器将无法工作。我为这个问题战斗了几天