加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi XE2中的TDataModule.ClassGroup伪属性真的有用吗?

发布时间:2020-12-15 09:34:08 所属栏目:大数据 来源:网络整理
导读:我试图在Delphi XE2中将一个组件从一个数据模块复制并粘贴到另一个数据模块中.该组件是快速报告数据源链接组件.数据模块是全新的,仅在XE2中创建了第二个. 其他人有同样的问题,并在quality central as 106369报告它和相同的错误消息,导致我这mysterious DocWi
我试图在Delphi XE2中将一个组件从一个数据模块复制并粘贴到另一个数据模块中.该组件是快速报告数据源链接组件.数据模块是全新的,仅在XE2中创建了第二个.

其他人有同样的问题,并在quality central as 106369报告它和相同的错误消息,导致我这mysterious DocWiki entry.

因此,数据模块现在具有框架关联性和仅设计时的伪属性,根据文档:

“因为ClassGroup伪属性仅由IDE使用,而不是编译器生成的属性(因此,’伪属性’),所以在编译器生成的库参考中没有记录ClassGroup.您正在阅读的页面是ClassGroup的文档.“

所以,我第一次学习这个存在就是它阻止我从现有的一组设计时构建块中复制和粘贴组件到我的数据模块中,我不希望从头开始重建.

一旦我改变了数据模块的亲和力,我就可以将东西粘贴到数据模块中,而不会让我烦恼.谢天谢地,谷歌那个错误或者我被困住了.

如果它旨在帮助我们编写跨平台数据模块,但它只影响IDE,根据文档,这与你在设计时使用它时得到的警告不一致,这是你得到的错误它:

EInvalidType : The following component(s) are not available in the specified 
 class group. This is likely to cause compile or runtime errors. 
 frxDBSet.TfrxDBDataset.

我看不到的是错误信息是如何正确的,文档也可以是正确的.

如果设置不正确,警告似乎表明编译,链接和运行时错误.想知道真正发生了什么的好奇心想知道:这是什么东西以及为什么它被添加到XE2中的数据模块中.我预计其他人会偶然发现这个奇怪的功能,感觉他们已经介入恐龙粪便之类的东西,并想知道这个功能是什么.

我在这一点上的最佳答案是TPersistent的数据模块亲和性,这意味着,在XE2术语中,该数据模块不需要非可视控件,这是VCL特定的.在Delphi的未来版本中,也许类似的标记允许我们将表单标记为“清除对VCL或Windows的依赖”?

更新1:数据模块的.PAS源代码以类似于编译器指令的方式存储此伪属性,如下所示:

implementation

{%CLASSGROUP 'Vcl.Controls.TControl'}

解决方法

我认为很明显它的用途是什么,你链接到的文档对于这个目的是非常广泛的.它旨在防止仅VCL组件放置在FireMonkey可访问的DataModule上,反之亦然.由于TDataModule最初是框架中立的,因此只能在其上放置框架中立组件.很明显,您的源DataModule具有与新DataModule不同的亲和力,这就是为什么在更改新DataModule的亲缘关系以匹配源DataModule的亲和性之前,复制/粘贴不起作用的原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读