指针类型的接口问题
我有一个指针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
[解决办法]
让我还原一下你的类声明:
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;