今天我带来了另一个让我头疼的问题,
我确实将一个 DAO 3.6 类型库导入到我的 delphi 7 中,并且我开始看到许多有趣的接口(interface),所以我面临着一个有趣的问题。
每次Fields类出现在另一个类的属性上时,它们都有正确的定义,我的意思是,他被定义为Fields,但是在Index类中,在他描述其结构的所有字段参与者的部分中,属性字段出现不作为字段,但作为 OleVariant。
查看与 TableDefs 的区别,它具有 Fields 属性并与 Index 定义进行比较:
_TableDef = interface(_DAO)
...
property Fields: Fields read Get_Fields;
...
end;
_Index = interface(_DAO)
...
property Fields: OleVariant read Get_Fields write Set_Fields;
...
end;
问题是,有没有办法将看起来像 OleVariant 类型的字段转换为字段接口(interface)类型?
我非常感谢 StackOverflow 的所有帮助
最佳答案
如果我正确理解您的问题,您是在问如何将变体转换为 IDispatch
.这样做:
IDispatch(V)
在你的情况下,我认为你有另一种类型,
Fields
源自 IDispatch
.你可以像这样捕获它:IDispatch(V) as Fields
关于delphi - 如何将 OleVariant 转换为派生的 IDispatch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16111060/