1

今天我带来了另一个让我头疼的问题,

我确实将一个 DAO 3.6 类型库导入到我的 delphi 7 中,并且我开始看到许多有趣的接口,所以我面临着一个有趣的问题。

每次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 类型的字段转换为字段接口类型?

我非常感谢 StackOverflow 的所有帮助

4

1 回答 1

6

如果我正确理解您的问题,您是在问如何将变体转换为IDispatch. 这样做:

IDispatch(V)

在您的情况下,我认为您有另一种类型,Fields它源自IDispatch. 你可以像这样抓住它:

IDispatch(V) as Fields
于 2013-04-19T20:03:13.393 回答