我的自定义Delphi组件在我的许多程序中都有使用。
代码升级后,我更改了我的自定义事件TUvValidateEvent
类型(参数计数和类型),但Delphi(我使用XE1或简单的XE)编译器编译我的程序,并不警告我需要更改的依赖项。
如何自动检查以便能够修复它,而无需手动查找所有事件用途?
样品:
Component.pas
//OLD
TUvValidateEvent = procedure(ErrMsg: UnicodeString) of object;
//NEW
TUvValidateEvent = procedure(Sender: TObject; Data: TUvValues; var ErrMsg: UnicodeString) of object;
Code.pas
procedure TMyForm.OnUvValidate(ErrMsg: UnicodeString); //Need to find this automatically.
P.S。更改事件属性名称是我目前使用的修复,但是,我不想这样做。
答案 0 :(得分:2)
编译器找不到这种类型不匹配的形式,因为不涉及编译器。 .dfm文件中指定的属性仅在运行时解析。当它们被解析时,在运行时也没有类型检查。
所以,你需要自己打猎。您可以使用任何体面的文件搜索工具执行此操作。例如,我会使用grep来执行此操作。或者您可以使用Delphi IDE查找文件工具。或者在您喜欢的文本编辑器中搜索文件。