读书人

指针类型的接口有关问题

发布时间: 2012-02-08 19:52:21 作者: rapoo

指针类型的接口问题
我有一个指针IMyInterface,定义一个
tpIMyInterface = ^IMyInterface

在程序里面我有一实现IMyInterface的类TMyObject,定义一个
tpMyObject = ^TMyObject,然后在某个过程do里面

procedure do;
var
List : TList;
MyInterfacePtr : tpIMyInterface;
MyObjectPtr : tpMyObject;
begin
List := TList.Create;
MyObjectPtr^ := TMyObject.Create;
List.add(MyObjectPtr);
MyInterfacePtr := List.Items[0];
MyInterfacePtr^.doSomething//错误
end;

请教为什么,如何把TLIST里面保存的指针传递给一接口指针!

//////////////////////////////
此外另外一个问题,为什么我使用 
tpTForm = ^TForm;
MyFormPtr : tpTForm;

...

(MyFormPtr^ as tpIMyInterface)//无法编译

...
请教为什么,如何使用指针类型的AS




[解决办法]
让我还原一下你的类声明:

Delphi(Pascal) code
type  tpIMyInterface = ^IMyInterface;  IMyInterface = interface    ['{CA88C314-ECE7-46DD-869B-9CDBE0FC05DA}']    procedure doSomething;  end;  tpMyObject = ^TMyObject;  TMyObject = class(TInterfacedObject, IMyInterface)  public    procedure doSomething;  end;{ TMyObject }procedure TMyObject.doSomething;begin  ShowMessage('hello world');end; 

读书人网 >.NET

热点推荐