修改Delphi';s自己的*.DCU文件

修改Delphi';s自己的*.DCU文件,delphi,Delphi,我已获取Controls.pas并将其复制到Control1.pas,并对其依赖的文件执行了相同的操作,因此它符合要求。我发现一些小错误需要修复,我在TWinControl中添加了一个过程,受保护,并将其标记为虚拟。编译它,然后将Control1重命名为Controls,并将DCU中的从属文件重新命名为原始文件(因此不更改文件大小)。这个添加的过程,通过它的名字应该对依赖它的Delphi的其余部分没有影响。 我替换了原来的Lib\Controls.DCU,并且我的新过程在IDE中看不到或不可用。

我已获取Controls.pas并将其复制到Control1.pas,并对其依赖的文件执行了相同的操作,因此它符合要求。我发现一些小错误需要修复,我在TWinControl中添加了一个过程,受保护,并将其标记为虚拟。编译它,然后将Control1重命名为Controls,并将DCU中的从属文件重新命名为原始文件(因此不更改文件大小)。这个添加的过程,通过它的名字应该对依赖它的Delphi的其余部分没有影响。
我替换了原来的Lib\Controls.DCU,并且我的新过程在IDE中看不到或不可用。我想我必须在某个地方把它放在一个*.BPL文件中,但我不知道是怎么回事。到目前为止,我这样把我的更新放进去是正确的。

您修改了许多其他软件包所依赖的代码。如果无法重建所有其他软件包,您肯定会遇到问题。不幸的是,这似乎是徒劳的练习。为什么?您想解决什么问题?自从更改了接口后,您已经重新编译了整个VCL。你通常会尽量避免这样做。我到目前为止是否正确:不。你做的完全是错误的事情,那就是修改不属于你的基本VCL的部分,然后期望它对VCL的其余部分(也不属于你)没有影响。如果没有每一个使用它的单元都需要重新编译,那么你就不能改变一个单元的接口,这将包括作为标准VCL一部分的每个运行时包。瞧,你把一切都毁了,除非你把东西像以前那样放回去。毫无疑问,有一个比您选择的解决方案更好的解决方案,但您没有提供信息来说明如何使用。请使用类帮助器或RTTI访问私有成员。你这样做是不对的。您当然不太了解链接过程,无法获得正确的细节。你问错了问题。根据记录,您不允许在软件包中分发RTL/VCL/FMX标准库。