1

Delphi XE2 でこの数日間、サード パーティのサービスを使用してきましたが、ほぼ完了しました。私は非常に明白な答えが必要だと思う私を完全に困惑させている問題に遭遇しています。私の問題が何であるかを別の目で教えてくれることを願っています。

私はこのインターフェースを持っています:

IWorshipTeamEvent = Interface(IInterface)
  function GetId : integer;
  function GetName : string;
  function GetTeamId : integer;
  function GetStartDate : TDate;
  function GetEndDate : TDate;
  function GetStartTime : TTime;
  function GetEndTime : TTime;
  function GetSets : IWorshipTeamSetList;

  property Id : integer read GetId;
  property Name : string read GetName;
  property TeamId : integer read GetTeamId;
  property StartDate : TDate read GetStartDate;
  property EndDate : TDate read GetEndDate;
  property StartTime : TTime read GetStartTime;
  property EndTime : TTime read GetEndTime;
  property Sets : IWorshipTeamSetList read GetSets;
end;

IWorshipTeamEvent次に、同じユニットの別のクラスで、この関数でa を返そうとしています:

function TWorshipTeamEventList.GetEvent(index: Integer) : IWorshipTeamEvent;
begin
  //fEvents is a TInterfaceList that contains only IWorshipTeamEvents
  Result := fEvents[index] as IWorshipTeamEvent;
end;

この時点で、コンパイラ エラーが発生しましOperator not applicable to this operand typeた。tempの型で変数をIXmlResponseType作成するなど、いくつかのことを試しました

temp := fEvents[index] as IXmlResponseType;
Result := nil;

コンパイルされたのでtemp、のタイプで作成してIWorshipTeamEventみました

temp := fEvents[index] as IWorshipTeamEvent;
Result := nil;

コンパイルされませんでした。

どんな提案でも大歓迎です

4

1 に答える 1

2

GUIDが欠落していることを指摘した別の質問でこの回答を読みました。インターフェイスの GUID を生成した後IWorshipTeamEvent、すべてがコンパイルされ、期待どおりに動作します。

于 2012-09-13T18:13:34.413 に答える