关于接口的问题(20分)

  • 主题发起人 主题发起人 guifuli
  • 开始时间 开始时间
G

guifuli

Unregistered / Unconfirmed
GUEST, unregistred user!
我碰到一个怪问题,就是在一个类中实现了一个接口,然后在调用时将此类转换成一个接口中调用接口中的方法时,第一次调用成功,但第二次调用时失败,不知为什么?如下:
type
ITestInterface = interface
['{CC46759F-DA2D-479B-964E-DEB641BE2A85}']
function TestFuncation: Boolean;
end;
TTestClass = class(TInterfacedObject, ITestInterface)
function TestFuncation: Boolean;
end;

var
TestClass: TTestClass;
begin
TestClass := TTestClass.Create;
try
//下面这句第一次调用时正确,第二次调用时报地址错误
if (TestClass as ITestInterface).TestFuncation then

ShowMessage('OK');
finally
TestClass.Free;
end;
end;


由于程序太大,不可能全部摘录下来,所以只做了个示范而已,不知有谁遇到过没有,如果有的话请指点一二,谢谢。
 
var
TestClass: TTestClass;
begin
TestClass := TTestClass.Create;
try
//下面这句第一次调用时正确,第二次调用时报地址错误
if (TestClass as ITestInterface).TestFuncation then

ShowMessage('OK');
finally
//TestClass.Free;
end;
 
搞得太快了,我是这样写的。
var
TestClass: TTestClass;
begin
TestClass := TTestClass.Create;
//下面这句第一次调用时正确,第二次调用时报地址错误
if (TestClass as ITestInterface).TestFuncation then

ShowMessage('OK');
end;
 
接受答案了.
 
后退
顶部