有时在设计时覆盖Delphi默认程序?
我需要在设计时覆盖InstanceSize,我使用FastCode方法运行它:
FastcodeAddressPatch(FastcodeGetAddress(@SInstanceSize), @TWinControl.RfInstanceSize);
但是,有没有办法在设计时做到这一点?
提出建议
答案 0 :(得分:4)
“设计时间”实际上只是“运行时间”,但是在IDE的上下文中而不是程序的上下文中。将代码放入设计时包中并将其加载到IDE中。 IDE将调用程序包单元中的所有Register
过程,此时您可以运行所需的任何代码。
Register
的接口部分。它必须有一个大写字母R,其余的小写字母。FastcodeAddressPatch
)。我对你在第5步中尝试做的事情有点警惕,但我会让你为自己解决这个问题。
答案 1 :(得分:1)
如果“在设计时”你的意思是“在表单设计器中改变组件的行为方式”,那么你真的不应该这样做。表单设计器是IDE的一部分,它是在BDS.exe中运行的所有Delphi代码。如果在“表单设计器”下更改TObject,则会为整个IDE更改它,从而可能带来灾难性的后果。