从 TBX 转移到 SpTBX。我过去用过 TTbxDockablePanel ,它有这样的道具:
DockedWidth
DockedHeight
FloatingWidth
FloatingHeight
我在 SpTBX 面板中找不到此类属性,那么我应该如何更改我的代码以使用此类道具?IE。我需要获取/设置 SpTBX 面板的停靠宽度/高度和浮动宽度/高度。
DockedWidth
和DockedHeight
ATSpTBXDockablePanel
现在有一个属性DefaultDockedSize
。停靠面板停靠到垂直或水平停靠,因此它只需要一个尺寸,它指定宽度(在垂直停靠中)或高度(在水平停靠中)。另一个轴的长度是两者之一的结果码头尺寸或同一码头中的其他面板。如果还有其他面板,它变成的大小是扩展坞中其他面板的宽度。如果没有,它将使用以前的大小(如果DefaultDockedSize
为 0)或尝试使用DefaultDockedSize
.
请参阅TSpTBXCustomDockablePanel.SetParent
代码。您将对开头if ToDock then...
和的两个分支感兴趣if ToFloating then...
。那里有一些评论,我试图解释写上面的内容。
从记忆中,当我几年前从 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 :)