如何从TCustomControl中取出TScrollbox?

时间:2012-03-09 01:42:21

标签: delphi custom-controls

我创建了一个在画布上有油漆覆盖的组件,我想设置最小宽度和高度的限制。当宽度或高度小于限制时,滚动条应显示在侧面,就像滚动条一样,也可以滚动。

我选择TCustomControl,因为我画画时双倍缓冲时闪烁更少。

任何想法或更好的解决方案?

1 个答案:

答案 0 :(得分:3)

TScrollBoxTCustomControl都来自TWinControlTScrollBoxTScrollingWinControl添加滚动条,而TCustomControl添加画布。要获得所需内容,您可以向TScrollingWinControl添加画布,也可以向TCustomControl添加滚动条。

比较两个类的定义(分别在 Forms.pas Controls.pas 中),应该清楚哪一个的功能更容易复制在你的后代。 TCustomControl添加了三种简单的方法,在大约40行代码中实现。编写TScrollingWinControl后代并将方法和属性从TCustomControl复制到其中。