0

我有一个带有一堆 VCL 控件(如 TButton 和 TCheckBox)的 Delphi 表单,以及一个Scintilla文本编辑器的实例。我希望能够进入和退出文本编辑器,但看起来标签是由 VCL 库而不是 Windows 处理的。

我单步执行了代码,看起来选项卡是由 TWinControl 类的 SelectNext 和 FindNextControl 方法处理的。这些方法适用于 TWinControl 对象,但文本编辑器不像 TButton 和 TCheckbox 那样来自 TWinControl。

有没有一种简单的方法允许在非 VCL 和 VCL 控件之间切换?

4

1 回答 1

0

(将此作为维基答案,因为 Rob 在上面的评论中非常正确,这只是反刍)

VCL 以一种相当特殊的方式处理特殊字符/键的键盘处理,直接通过 Win API 绕过/扩展它当然是可行的,但并非易事。

如果您在控件周围创建自定义 VCL 组件包装器(使用 VCL 源代码作为指南),从长远来看,这将同样容易且坦率地说更灵活off 在可维护性和重用方面将是巨大的。

编辑:

当然,您可以简单地将这个免费的 Delphi Wrapper用于 Scintilla 编辑器。

于 2010-01-04T04:23:53.553 回答