代码之家  ›  专栏  ›  技术社区  ›  Lawrence Barsanti

有没有一个简单的方法允许在Delphi窗体上的非VCL和VCL控件之间切换?

  •  0
  • Lawrence Barsanti  · 技术社区  · 16 年前

    我有一个Delphi表单,其中包含一系列VCL控件,如Tbutton和Tcheckbox,以及 Scintilla 文本编辑器。我希望能够标签进入和退出文本编辑器,但它看起来像标签是由VCL库而不是Windows处理。

    我仔细检查了代码,看起来标签是由TwinControl类的SelectNext和FindNextControl方法处理的。这些方法适用于TwinControl对象,但文本编辑器不会从TwinControl(如Tbutton和Tcheckbox)下降。

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

    1 回复  |  直到 16 年前
        1
  •  0
  •   Tim Jarvis    16 年前

    (这是一个wiki答案,因为rob在他上面的评论中是非常正确的,这只是反证)

    VCL以一种相当特殊的方式处理特殊字符/键的键盘处理,并且通过WinAPI直接绕过/扩展这一过程当然是可行的,但也非常重要。

    如果您在控件周围创建一个自定义VCL组件包装器(使用VCL源代码作为指南),那么从长远来看,它将变得简单和更灵活,这并不是那么困难(可能有点乏味),但在可维护性和重用性方面,回报将是巨大的。

    编辑:

    当然你也可以用这个 free Delphi Wrapper 闪烁编辑器。