delphi - 如何从 TCustomControl 中制作出 TScrollbox?

标签 delphi custom-controls

我创建了一个在 Canvas 上具有绘画覆盖的组件,我想设置最小宽度和高度的限制。当宽度或高度小于限制时,滚动条应该出现在侧面,就像滚动框一样,并且可以滚动。

我选择 TCustomControl 因为我在双缓冲时进行绘制并且闪烁较少。

有什么想法或更好的解决方案吗?

最佳答案

TScrollBoxTCustomControl 均源自 TWinControlTScrollBoxTScrollingWinControl 添加滚动条,而 TCustomControl 添加 Canvas 。要获得您想要的效果,您可以将 Canvas 添加到 TScrollingWinControl,也可以将滚动条添加到 TCustomControl

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

关于delphi - 如何从 TCustomControl 中制作出 TScrollbox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9627831/

相关文章:

custom-controls - XPage:根据重复的值动态包含自定义控件?

delphi - 设计时包构建失败 - 找不到文件 : 'Graphics.dcu'

java - 应用程序中的自定义 View (Android)

asp.net - 继承自 Control 与 Web Control

c# - Delphi 表单 (DFM) 到文本

delphi - 在自定义 Delphi 组件中实现 Columns.Columns 属性

regex - Perl样式正则表达式中不区分大小写的delphi TRegEx问题

delphi - 如何拦截发送到窗体上任何 TWinControl 的消息?

delphi - 如何在delphi7中处理unicode数据

silverlight - 将模板属性值绑定(bind)到模板化控件属性