关于接口的提问

iamduo 2010-04-11 08:18:01
IMyForm = interface
['{C95FD9BB-E3F0-4167-A291-E3C1DB4025B0}']
function ShowModal: Integer;stdcall;
end;

TMyForm = class(TForm,IMyForm)
public
function ShowModal: Integer;stdcall; // 这个怎么写?
end;

我只是想把TForm的方法,暴露到接口 IMyForm 中去便于调用。
...全文
113 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamduo 2010-04-13
  • 打赏
  • 举报
回复
呵呵,
在第一帖回复前,我用别名来处理了这件事情。
感谢大家来抢分。
SQLDebug_Fan 2010-04-12
  • 打赏
  • 举报
回复
建议改一下接口函数名字,然后再调用TForm的函数
Harryfin 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 iamduo 的回复:]
IMyForm = interface
['{C95FD9BB-E3F0-4167-A291-E3C1DB4025B0}']
function ShowModal: Integer;stdcall;
end;

TMyForm = class(TForm,IMyForm)
public
function ShowModal: Integer;s……
[/Quote]

1、如果接口的声明和父类中的方法完全相同,子类可以不实现该接口的方法。
2、如果接口声明的方法和类中的方法重名,用接口方法名重解析子句来让接口方法映射到类中的另一个不重名的方法上

注意,你这里的ShowModal和父类中的ShowModal声明实际是不同的,因为父类中没有stdcall调用协定
IDWB 2010-04-12
  • 打赏
  • 举报
回复
就按照楼上的写就可以了,再写实现部分就好了,不知道是不是楼主要求的?
mdejtod 2010-04-12
  • 打赏
  • 举报
回复
IMyForm = interface
['{C95FD9BB-E3F0-4167-A291-E3C1DB4025B0}']
function ShowModal: Integer;
end;

TMyForm = class(TForm,IMyForm)
public
function ShowModal: Integer;
end;
另外,
我只是想把TForm的方法,暴露到接口 IMyForm 中去便于调用。
可以写成activeform 的形式
LAZIJIDING 2010-04-12
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!

16,749

社区成员

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

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