Delphi SpTBX:我可以使用面板吗';停靠宽度/浮动宽度

Delphi SpTBX:我可以使用面板吗';停靠宽度/浮动宽度,delphi,delphi-7,sptbxlib,Delphi,Delphi 7,Sptbxlib,从TBX移动到SpTBX。我在过去使用过TTbxDockablePanel,它有这样的道具: DockedWidth DockedHeight FloatingWidth FloatingHeight 我在SpTBX面板中找不到这样的属性,所以我应该如何更改代码以使用这样的道具?即,我需要获取/设置SpTBX面板的固定宽度/高度和浮动宽度/高度。DockedWidth和DockedHeight TSpTBXDockablePanel现在有一个属性DefaultDockedSize。固定面板固定

从TBX移动到SpTBX。我在过去使用过TTbxDockablePanel,它有这样的道具:

DockedWidth
DockedHeight
FloatingWidth
FloatingHeight
我在SpTBX面板中找不到这样的属性,所以我应该如何更改代码以使用这样的道具?即,我需要获取/设置SpTBX面板的固定宽度/高度和浮动宽度/高度。

DockedWidth
DockedHeight
TSpTBXDockablePanel
现在有一个属性
DefaultDockedSize
。固定面板固定在垂直或水平基座上,因此它只需要一个尺寸,用于指定宽度(在垂直基座中)或高度(在水平基座中)。另一个轴的长度是基座尺寸或同一基座中其他面板的结果。如果存在其他面板,则其大小为坞中其他面板的宽度。如果没有,它将使用以前的大小(如果
defaultdockdsize
为0)或尝试使用
defaultdockdsize

有关代码,请参见
TSpTBXCustomDockablePanel.SetParent
。您将对两个分支感兴趣,这两个分支的开头是
如果ToDock然后…
如果ToFloating然后…
。这里有一些评论,我试着解释一下,然后写上面的内容

根据记忆,几年前我从TBX转换到SpTBX时,这是最难做到完全相同的地方。然而,你可以很容易地让它表现得“好”

FloatingWidth
FloatingHeight
替换为
FloatingClientWidth
FloatingClientHeight
。请注意,这些是客户端大小,而不是窗口大小,但通常应为直接替换

此外
SpTBXDkPanels.pas文件顶部有一条注释

// - To handle the size constraints use GetMinMaxSize when the DP is floating,
//   and ConstrainedResize when is Docked (explicitly check if it's docked).
你可能会发现这也很有用

代码中散布着合理数量的注释。SpTBX库没有很好的文档,但它有高质量的源代码。。。使用来源Luke:)