Delphi中如何判断某个Object是XX接口的一个实例?

chuchu 2004-12-29 11:52:59
就像Java里的InstanceOf一样的效果。
我拥有的是一个TObject,不是TInterfaceObject。
我想要判断这个TObject是否具有IDispatch接口,该如何做?
TObject.GetInterface()好像不起作用。
...全文
220 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyondtkl 2004-12-29
  • 打赏
  • 举报
回复
刚去 TObject的定义看了看 好像也没有类似的 或者我不知道 :)

function ClassType: TClass;
class function ClassNameIs(const Name: string): Boolean;
class function ClassParent: TClass;
class function ClassInfo: Pointer;

class function InheritsFrom(AClass: TClass): Boolean; // *
class function MethodAddress(const Name: ShortString): Pointer; // *
function FieldAddress(const Name: ShortString): Pointer;
function GetInterface(const IID: TGUID; out Obj): Boolean;

UP.
under 2004-12-29
  • 打赏
  • 举报
回复
学习一下啊
yeliming 2004-12-29
  • 打赏
  • 举报
回复
补充,接口的GUID一般都做为共有的Const存在,如IID_IDispatch.
yeliming 2004-12-29
  • 打赏
  • 举报
回复
TObject.GetInterface()就可以啊,前面一个参数要用GUID,帮助里说用接口名称可以,不过,我发现有时候不行。
pascal_lee_tw 2004-12-29
  • 打赏
  • 举报
回复
var
aIEditor: IEditor;
begin
if ObjectA.GetInterface(IEditor, aIEditor) then
aIEditor.XXX;
end;

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧