我创建了一个在 Canvas 上具有绘画覆盖的组件,我想设置最小宽度和高度的限制。当宽度或高度小于限制时,滚动条应该出现在侧面,就像滚动框一样,并且可以滚动。
我选择 TCustomControl 因为我在双缓冲时进行绘制并且闪烁较少。
有什么想法或更好的解决方案吗?
最佳答案
TScrollBox
和 TCustomControl
均源自 TWinControl
。 TScrollBox
和 TScrollingWinControl
添加滚动条,而 TCustomControl
添加 Canvas 。要获得您想要的效果,您可以将 Canvas 添加到 TScrollingWinControl
,也可以将滚动条添加到 TCustomControl
。
比较两个类的定义(分别在 Forms.pas 和 Controls.pas 中),应该清楚哪个类的功能更容易复制在你的后裔中。 TCustomControl
添加了三个简单的方法,用大约 40 行代码实现。编写一个 TScrollingWinControl
后代并将 TCustomControl
中的方法和属性复制到其中。
关于delphi - 如何从 TCustomControl 中制作出 TScrollbox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9627831/