我已将 Delphi 2005 OCX 项目转换为 XE2,这导致原始 TLB 更改为 RIDL。使用视图 | XE2 中的类型库类似于 Delphi 2005,我可以看到所有的接口和属性/方法。
最初的 2005 年项目已经有一个从原始 TLB 生成的 _TLB.pas 单元,但我需要添加一个新属性,所以我继续对 RIDL 执行此操作并选择“刷新实现”选项。
然而,虽然原始的 _TLB.pas 包含接近结尾的部分,如下所示:
// *********************************************************************//
// OLE Control Proxy class declaration
// Control Name : TTransControlSHX
// Help String : TransControlSHX Control
// Default Interface: ITransControlSHX
// Def. Intf. DISP? : No
// Event Interface: ITransControlSHXEvents
// TypeFlags : (34) CanCreate Control
// *********************************************************************//
TTransControlSHX = class(TOleControl)
从 RIDL 生成的新 _TLB.pas 文件不包含此部分。
我该如何取回它?没有它,我使用 OCX 的应用程序都抱怨 TTransControlSHX 是未声明的标识符。