delphi – 修改VCL组件代码

delphi – 修改VCL组件代码,第1张

概述我需要更改组件中的功能.当你得到一个“你不能覆盖这个”消息,或者你需要在私有方法中更改代码(“基类中不存在方法”消息)时,你会怎么做,使得组件无法下降? 如果我遇到这个问题, >我首先尝试从组件或其CustomXXX祖先继承,看看是否能解决问题.如果没有, >我更深入,即尝试拦截进来的消息.这可以动态完成.如果结果太深,因为必须构建的代码太广泛,或者我仍然需要访问我无法访问的项目, >我尝试黑客攻 我需要更改组件中的功能.当你得到一个“你不能覆盖这个”消息,或者你需要在私有方法中更改代码(“基类中不存在方法”消息)时,你会怎么做,使得组件无法下降?解决方法 如果我遇到这个问题,

>我首先尝试从组件或其CustomXXX祖先继承,看看是否能解决问题.如果没有,
>我更深入,即尝试拦截进来的消息.这可以动态完成.如果结果太深,因为必须构建的代码太广泛,或者我仍然需要访问我无法访问的项目,
>我尝试黑客攻击.一个Hack是将组件和依赖代码复制到具有不同名称的新单元,重命名组件并修改需要修改的内容.
>有时我只需重做一两种方法就可以使我的新行为成为可能.

永远不要忘记为单元赋予不同的名称,并且组件也可以是不同的名称(可能继承自原始组件或其祖先之一,因此它们保持在同一层次结构中).永远不要修改原始源,然后重新编译VCL.那是一场维护噩梦.

我不喜欢内插器类,即从原始类继承的名称与原始类相同但行为不同的类.它们的功能取决于使用条款中包含的顺序,这对我来说似乎更加脆弱.我不能推荐.

但我做的很大程度上取决于问题.我认为不能(或应该)提供涵盖所有情况的全面建议.

但我的主要建议是:不要修改原始单位,始终将新代码放在新单位中并使用新的类名.这样,原始版本和修改版本可以在IDE中和平共存.

总结

以上是内存溢出为你收集整理的delphi – 修改VCL组件代码全部内容,希望文章能够帮你解决delphi – 修改VCL组件代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1251447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存